home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 15 / BBS in a box XV-2.iso / Files II / Prog / M / MacPerl 4.13 source.sit / Perl Source ƒ / Perl / cons.c < prev    next >
MacBinary  |  1993-10-23  |  36.6 KB  |  [TEXT/MPS ]

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was processed as: MacBinary (archive/macBinary).

You can browse this item here: cons.c

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert Compact Compressed (Unix) (archive/compact) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
10% dexvert Jesper Olsen Module (music/jesperOlsen) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Sat Oct 23 01:07:39 1993, modified Sat Oct 23 01:07:39 1993, creator 'MPS ', type ASCII, 36822 bytes "cons.c" , at 0x9056 428 bytes resource default (weak)
99% file data default
49% TrID Macintosh plain text (MacBinary) default
33% TrID TTComp archive compressed (bin-4K) default (weak)
16% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[MPS ]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 06 63 6f 6e 73 2e 63 | 00 00 00 00 00 00 00 00 |..cons.c|........|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 50 53 | 20 01 00 00 00 00 00 00 |.TEXTMPS| .......|
|00000050| 00 00 00 00 00 8f d6 00 | 00 01 ac a8 ee 6c 9b a8 |........|.....l..|
|00000060| ee 6c 9b 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.l......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 99 f2 00 00 |........|........|
|00000080| 2f 2a 20 24 52 43 53 66 | 69 6c 65 3a 20 63 6f 6e |/* $RCSf|ile: con|
|00000090| 73 2e 63 2c 76 20 24 24 | 52 65 76 69 73 69 6f 6e |s.c,v $$|Revision|
|000000a0| 3a 20 34 2e 30 2e 31 2e | 34 20 24 24 44 61 74 65 |: 4.0.1.|4 $$Date|
|000000b0| 3a 20 31 39 39 33 2f 30 | 32 2f 30 35 20 31 39 3a |: 1993/0|2/05 19:|
|000000c0| 33 30 3a 31 35 20 24 0d | 20 2a 0d 20 2a 20 20 20 |30:15 $.| *. * |
|000000d0| 20 43 6f 70 79 72 69 67 | 68 74 20 28 63 29 20 31 | Copyrig|ht (c) 1|
|000000e0| 39 39 31 2c 20 4c 61 72 | 72 79 20 57 61 6c 6c 0d |991, Lar|ry Wall.|
|000000f0| 20 2a 0d 20 2a 20 20 20 | 20 59 6f 75 20 6d 61 79 | *. * | You may|
|00000100| 20 64 69 73 74 72 69 62 | 75 74 65 20 75 6e 64 65 | distrib|ute unde|
|00000110| 72 20 74 68 65 20 74 65 | 72 6d 73 20 6f 66 20 74 |r the te|rms of t|
|00000120| 68 65 20 50 65 72 6c 20 | 41 72 74 69 73 74 69 63 |he Perl |Artistic|
|00000130| 20 4c 69 63 65 6e 73 65 | 2c 0d 20 2a 20 20 20 20 | License|,. * |
|00000140| 61 73 20 73 70 65 63 69 | 66 69 65 64 20 69 6e 20 |as speci|fied in |
|00000150| 74 68 65 20 52 45 41 44 | 4d 45 20 66 69 6c 65 2e |the READ|ME file.|
|00000160| 0d 20 2a 0d 20 2a 20 24 | 4c 6f 67 3a 09 63 6f 6e |. *. * $|Log:.con|
|00000170| 73 2e 63 2c 76 20 24 0d | 20 2a 20 52 65 76 69 73 |s.c,v $.| * Revis|
|00000180| 69 6f 6e 20 34 2e 30 2e | 31 2e 33 20 20 31 39 39 |ion 4.0.|1.3 199|
|00000190| 32 2f 30 36 2f 30 38 20 | 20 31 32 3a 31 38 3a 33 |2/06/08 | 12:18:3|
|000001a0| 35 20 20 6c 77 61 6c 6c | 0d 20 2a 20 70 61 74 63 |5 lwall|. * patc|
|000001b0| 68 32 30 3a 20 72 65 6d | 6f 76 65 64 20 69 6d 70 |h20: rem|oved imp|
|000001c0| 6c 69 63 69 74 20 69 6e | 74 20 64 65 63 6c 61 72 |licit in|t declar|
|000001d0| 61 74 69 6f 6e 73 20 6f | 6e 20 66 75 6e 63 69 6f |ations o|n funcio|
|000001e0| 6e 73 0d 20 2a 20 70 61 | 74 63 68 32 30 3a 20 64 |ns. * pa|tch20: d|
|000001f0| 65 6c 65 74 65 64 20 73 | 6f 6d 65 20 6d 69 6e 6f |eleted s|ome mino|
|00000200| 72 20 6d 65 6d 6f 72 79 | 20 6c 65 61 6b 73 0d 20 |r memory| leaks. |
|00000210| 2a 20 70 61 74 63 68 32 | 30 3a 20 66 69 78 65 64 |* patch2|0: fixed|
|00000220| 20 64 6f 75 62 6c 65 20 | 64 65 62 75 67 20 62 72 | double |debug br|
|00000230| 65 61 6b 20 69 6e 20 66 | 6f 72 65 61 63 68 20 77 |eak in f|oreach w|
|00000240| 69 74 68 20 69 6d 70 6c | 69 63 69 74 20 61 72 72 |ith impl|icit arr|
|00000250| 61 79 20 61 73 73 69 67 | 6e 6d 65 6e 74 0d 20 2a |ay assig|nment. *|
|00000260| 20 70 61 74 63 68 32 30 | 3a 20 66 69 78 65 64 20 | patch20|: fixed |
|00000270| 63 6f 6e 66 75 73 69 6f | 6e 20 62 65 74 77 65 65 |confusio|n betwee|
|00000280| 6e 20 61 20 2a 76 61 72 | 27 73 20 72 65 61 6c 20 |n a *var|'s real |
|00000290| 6e 61 6d 65 20 61 6e 64 | 20 69 74 73 20 65 66 66 |name and| its eff|
|000002a0| 65 63 74 69 76 65 20 6e | 61 6d 65 0d 20 2a 20 70 |ective n|ame. * p|
|000002b0| 61 74 63 68 32 30 3a 20 | 50 65 72 6c 20 6e 6f 77 |atch20: |Perl now|
|000002c0| 20 64 69 73 74 69 6e 67 | 75 69 73 68 65 73 20 6f | disting|uishes o|
|000002d0| 76 65 72 6c 61 70 70 65 | 64 20 63 6f 70 69 65 73 |verlappe|d copies|
|000002e0| 20 66 72 6f 6d 20 6e 6f | 6e 2d 6f 76 65 72 6c 61 | from no|n-overla|
|000002f0| 70 70 65 64 0d 20 2a 20 | 70 61 74 63 68 32 30 3a |pped. * |patch20:|
|00000300| 20 64 65 62 75 67 67 65 | 72 20 73 6f 6d 65 74 69 | debugge|r someti|
|00000310| 6d 65 73 20 64 69 73 70 | 6c 61 79 65 64 20 77 72 |mes disp|layed wr|
|00000320| 6f 6e 67 20 73 6f 75 72 | 63 65 20 6c 69 6e 65 0d |ong sour|ce line.|
|00000330| 20 2a 20 70 61 74 63 68 | 32 30 3a 20 76 61 72 69 | * patch|20: vari|
|00000340| 6f 75 73 20 65 72 72 6f | 72 20 6d 65 73 73 61 67 |ous erro|r messag|
|00000350| 65 73 20 68 61 76 65 20 | 62 65 65 6e 20 63 6c 61 |es have |been cla|
|00000360| 72 69 66 69 65 64 0d 20 | 2a 20 70 61 74 63 68 32 |rified. |* patch2|
|00000370| 30 3a 20 61 6e 20 65 76 | 61 6c 20 62 6c 6f 63 6b |0: an ev|al block|
|00000380| 20 63 6f 6e 74 61 69 6e | 69 6e 67 20 61 20 6e 75 | contain|ing a nu|
|00000390| 6c 6c 20 62 6c 6f 63 6b | 20 6f 72 20 73 74 61 74 |ll block| or stat|
|000003a0| 65 6d 65 6e 74 20 63 6f | 75 6c 64 20 64 75 6d 70 |ement co|uld dump|
|000003b0| 20 63 6f 72 65 0d 20 2a | 20 0d 20 2a 20 52 65 76 | core. *| . * Rev|
|000003c0| 69 73 69 6f 6e 20 34 2e | 30 2e 31 2e 32 20 20 39 |ision 4.|0.1.2 9|
|000003d0| 31 2f 31 31 2f 30 35 20 | 20 31 36 3a 31 35 3a 31 |1/11/05 | 16:15:1|
|000003e0| 33 20 20 6c 77 61 6c 6c | 0d 20 2a 20 70 61 74 63 |3 lwall|. * patc|
|000003f0| 68 31 31 3a 20 64 65 62 | 75 67 67 65 72 20 67 6f |h11: deb|ugger go|
|00000400| 74 20 63 6f 6e 66 75 73 | 65 64 20 6f 76 65 72 20 |t confus|ed over |
|00000410| 6e 65 73 74 65 64 20 73 | 75 62 72 6f 75 74 69 6e |nested s|ubroutin|
|00000420| 65 20 64 65 66 69 6e 69 | 74 69 6f 6e 73 0d 20 2a |e defini|tions. *|
|00000430| 20 70 61 74 63 68 31 31 | 3a 20 70 72 65 70 61 72 | patch11|: prepar|
|00000440| 65 64 20 66 6f 72 20 63 | 74 79 70 65 20 69 6d 70 |ed for c|type imp|
|00000450| 6c 65 6d 65 6e 74 61 74 | 69 6f 6e 73 20 74 68 61 |lementat|ions tha|
|00000460| 74 20 64 6f 6e 27 74 20 | 64 65 66 69 6e 65 20 69 |t don't |define i|
|00000470| 73 61 73 63 69 69 28 29 | 0d 20 2a 20 0d 20 2a 20 |sascii()|. * . * |
|00000480| 52 65 76 69 73 69 6f 6e | 20 34 2e 30 2e 31 2e 31 |Revision| 4.0.1.1|
|00000490| 20 20 39 31 2f 30 36 2f | 30 37 20 20 31 30 3a 33 | 91/06/|07 10:3|
|000004a0| 31 3a 31 35 20 20 6c 77 | 61 6c 6c 0d 20 2a 20 70 |1:15 lw|all. * p|
|000004b0| 61 74 63 68 34 3a 20 6e | 65 77 20 63 6f 70 79 72 |atch4: n|ew copyr|
|000004c0| 69 67 68 74 20 6e 6f 74 | 69 63 65 0d 20 2a 20 70 |ight not|ice. * p|
|000004d0| 61 74 63 68 34 3a 20 61 | 64 64 65 64 20 67 6c 6f |atch4: a|dded glo|
|000004e0| 62 61 6c 20 6d 6f 64 69 | 66 69 65 72 20 66 6f 72 |bal modi|fier for|
|000004f0| 20 70 61 74 74 65 72 6e | 20 6d 61 74 63 68 65 73 | pattern| matches|
|00000500| 0d 20 2a 20 0d 20 2a 20 | 52 65 76 69 73 69 6f 6e |. * . * |Revision|
|00000510| 20 34 2e 30 20 20 39 31 | 2f 30 33 2f 32 30 20 20 | 4.0 91|/03/20 |
|00000520| 30 31 3a 30 35 3a 35 31 | 20 20 6c 77 61 6c 6c 0d |01:05:51| lwall.|
|00000530| 20 2a 20 34 2e 30 20 62 | 61 73 65 6c 69 6e 65 2e | * 4.0 b|aseline.|
|00000540| 0d 20 2a 20 0d 20 2a 2f | 0d 0d 23 69 6e 63 6c 75 |. * . */|..#inclu|
|00000550| 64 65 20 22 45 58 54 45 | 52 4e 2e 68 22 0d 23 69 |de "EXTE|RN.h".#i|
|00000560| 6e 63 6c 75 64 65 20 22 | 70 65 72 6c 2e 68 22 0d |nclude "|perl.h".|
|00000570| 23 69 6e 63 6c 75 64 65 | 20 22 70 65 72 6c 79 2e |#include| "perly.|
|00000580| 68 22 0d 0d 65 78 74 65 | 72 6e 20 63 68 61 72 20 |h"..exte|rn char |
|00000590| 2a 74 6f 6b 65 6e 61 6d | 65 5b 5d 3b 0d 65 78 74 |*tokenam|e[];.ext|
|000005a0| 65 72 6e 20 69 6e 74 20 | 79 79 63 68 61 72 3b 0d |ern int |yychar;.|
|000005b0| 0d 73 74 61 74 69 63 20 | 69 6e 74 20 63 6d 64 5f |.static |int cmd_|
|000005c0| 74 6f 73 61 76 65 28 29 | 3b 0d 73 74 61 74 69 63 |tosave()|;.static|
|000005d0| 20 69 6e 74 20 61 72 67 | 5f 74 6f 73 61 76 65 28 | int arg|_tosave(|
|000005e0| 29 3b 0d 73 74 61 74 69 | 63 20 69 6e 74 20 73 70 |);.stati|c int sp|
|000005f0| 61 74 5f 74 6f 73 61 76 | 65 28 29 3b 0d 73 74 61 |at_tosav|e();.sta|
|00000600| 74 69 63 20 76 6f 69 64 | 20 6d 61 6b 65 5f 63 73 |tic void| make_cs|
|00000610| 77 69 74 63 68 28 29 3b | 0d 73 74 61 74 69 63 20 |witch();|.static |
|00000620| 76 6f 69 64 20 6d 61 6b | 65 5f 6e 73 77 69 74 63 |void mak|e_nswitc|
|00000630| 68 28 29 3b 0d 0d 73 74 | 61 74 69 63 20 62 6f 6f |h();..st|atic boo|
|00000640| 6c 20 73 61 77 5f 72 65 | 74 75 72 6e 3b 0d 0d 53 |l saw_re|turn;..S|
|00000650| 55 42 52 20 2a 0d 6d 61 | 6b 65 5f 73 75 62 28 6e |UBR *.ma|ke_sub(n|
|00000660| 61 6d 65 2c 63 6d 64 29 | 0d 63 68 61 72 20 2a 6e |ame,cmd)|.char *n|
|00000670| 61 6d 65 3b 0d 43 4d 44 | 20 2a 63 6d 64 3b 0d 7b |ame;.CMD| *cmd;.{|
|00000680| 0d 20 20 20 20 72 65 67 | 69 73 74 65 72 20 53 55 |. reg|ister SU|
|00000690| 42 52 20 2a 73 75 62 3b | 0d 20 20 20 20 53 54 41 |BR *sub;|. STA|
|000006a0| 42 20 2a 73 74 61 62 20 | 3d 20 73 74 61 62 65 6e |B *stab |= staben|
|000006b0| 74 28 6e 61 6d 65 2c 54 | 52 55 45 29 3b 0d 0d 20 |t(name,T|RUE);.. |
|000006c0| 20 20 20 69 66 20 28 73 | 75 62 20 3d 20 73 74 61 | if (s|ub = sta|
|000006d0| 62 5f 73 75 62 28 73 74 | 61 62 29 29 20 7b 0d 09 |b_sub(st|ab)) {..|
|000006e0| 69 66 20 28 64 6f 77 61 | 72 6e 29 20 7b 0d 09 20 |if (dowa|rn) {.. |
|000006f0| 20 20 20 43 4d 44 20 2a | 6f 6c 64 63 75 72 63 6d | CMD *|oldcurcm|
|00000700| 64 20 3d 20 63 75 72 63 | 6d 64 3b 0d 0d 09 20 20 |d = curc|md;... |
|00000710| 20 20 69 66 20 28 63 6d | 64 29 0d 09 09 63 75 72 | if (cm|d)...cur|
|00000720| 63 6d 64 20 3d 20 63 6d | 64 3b 0d 09 20 20 20 20 |cmd = cm|d;.. |
|00000730| 77 61 72 6e 28 22 53 75 | 62 72 6f 75 74 69 6e 65 |warn("Su|broutine|
|00000740| 20 25 73 20 72 65 64 65 | 66 69 6e 65 64 22 2c 6e | %s rede|fined",n|
|00000750| 61 6d 65 29 3b 0d 09 20 | 20 20 20 63 75 72 63 6d |ame);.. | curcm|
|00000760| 64 20 3d 20 6f 6c 64 63 | 75 72 63 6d 64 3b 0d 09 |d = oldc|urcmd;..|
|00000770| 7d 0d 09 69 66 20 28 21 | 73 75 62 2d 3e 75 73 65 |}..if (!|sub->use|
|00000780| 72 73 75 62 20 26 26 20 | 73 75 62 2d 3e 63 6d 64 |rsub && |sub->cmd|
|00000790| 29 20 7b 0d 09 20 20 20 | 20 63 6d 64 5f 66 72 65 |) {.. | cmd_fre|
|000007a0| 65 28 73 75 62 2d 3e 63 | 6d 64 29 3b 0d 09 20 20 |e(sub->c|md);.. |
|000007b0| 20 20 73 75 62 2d 3e 63 | 6d 64 20 3d 20 4e 75 6c | sub->c|md = Nul|
|000007c0| 6c 63 6d 64 3b 0d 09 20 | 20 20 20 61 66 72 65 65 |lcmd;.. | afree|
|000007d0| 28 73 75 62 2d 3e 74 6f | 73 61 76 65 29 3b 0d 09 |(sub->to|save);..|
|000007e0| 7d 0d 09 53 61 66 65 66 | 72 65 65 28 73 75 62 29 |}..Safef|ree(sub)|
|000007f0| 3b 0d 20 20 20 20 7d 0d | 20 20 20 20 4e 65 77 7a |;. }.| Newz|
|00000800| 28 31 30 31 2c 73 75 62 | 2c 31 2c 53 55 42 52 29 |(101,sub|,1,SUBR)|
|00000810| 3b 0d 20 20 20 20 73 74 | 61 62 5f 73 75 62 28 73 |;. st|ab_sub(s|
|00000820| 74 61 62 29 20 3d 20 73 | 75 62 3b 0d 20 20 20 20 |tab) = s|ub;. |
|00000830| 73 75 62 2d 3e 66 69 6c | 65 73 74 61 62 20 3d 20 |sub->fil|estab = |
|00000840| 63 75 72 63 6d 64 2d 3e | 63 5f 66 69 6c 65 73 74 |curcmd->|c_filest|
|00000850| 61 62 3b 0d 20 20 20 20 | 73 61 77 5f 72 65 74 75 |ab;. |saw_retu|
|00000860| 72 6e 20 3d 20 46 41 4c | 53 45 3b 0d 20 20 20 20 |rn = FAL|SE;. |
|00000870| 74 6f 73 61 76 65 20 3d | 20 61 6e 65 77 28 4e 75 |tosave =| anew(Nu|
|00000880| 6c 6c 73 74 61 62 29 3b | 0d 20 20 20 20 74 6f 73 |llstab);|. tos|
|00000890| 61 76 65 2d 3e 61 72 79 | 5f 66 69 6c 6c 20 3d 20 |ave->ary|_fill = |
|000008a0| 30 3b 09 2f 2a 20 6d 61 | 6b 65 20 31 20 62 61 73 |0;./* ma|ke 1 bas|
|000008b0| 65 64 20 2a 2f 0d 20 20 | 20 20 28 76 6f 69 64 29 |ed */. | (void)|
|000008c0| 63 6d 64 5f 74 6f 73 61 | 76 65 28 63 6d 64 2c 46 |cmd_tosa|ve(cmd,F|
|000008d0| 41 4c 53 45 29 3b 09 2f | 2a 20 74 68 69 73 20 62 |ALSE);./|* this b|
|000008e0| 75 69 6c 64 73 20 74 68 | 65 20 74 6f 73 61 76 65 |uilds th|e tosave|
|000008f0| 20 61 72 72 61 79 20 2a | 2f 0d 20 20 20 20 73 75 | array *|/. su|
|00000900| 62 2d 3e 74 6f 73 61 76 | 65 20 3d 20 74 6f 73 61 |b->tosav|e = tosa|
|00000910| 76 65 3b 0d 20 20 20 20 | 69 66 20 28 73 61 77 5f |ve;. |if (saw_|
|00000920| 72 65 74 75 72 6e 29 20 | 7b 0d 09 73 74 72 75 63 |return) |{..struc|
|00000930| 74 20 63 6f 6d 70 63 6d | 64 20 6d 79 63 6f 6d 70 |t compcm|d mycomp|
|00000940| 62 6c 6f 63 6b 3b 0d 0d | 09 6d 79 63 6f 6d 70 62 |block;..|.mycompb|
|00000950| 6c 6f 63 6b 2e 63 6f 6d | 70 5f 74 72 75 65 20 3d |lock.com|p_true =|
|00000960| 20 63 6d 64 3b 0d 09 6d | 79 63 6f 6d 70 62 6c 6f | cmd;..m|ycompblo|
|00000970| 63 6b 2e 63 6f 6d 70 5f | 61 6c 74 20 3d 20 4e 75 |ck.comp_|alt = Nu|
|00000980| 6c 6c 63 6d 64 3b 0d 09 | 63 6d 64 20 3d 20 61 64 |llcmd;..|cmd = ad|
|00000990| 64 5f 6c 61 62 65 6c 28 | 73 61 76 65 73 74 72 28 |d_label(|savestr(|
|000009a0| 22 5f 53 55 42 5f 22 29 | 2c 6d 61 6b 65 5f 63 63 |"_SUB_")|,make_cc|
|000009b0| 6d 64 28 43 5f 42 4c 4f | 43 4b 2c 30 2c 0d 09 20 |md(C_BLO|CK,0,.. |
|000009c0| 20 20 20 4e 75 6c 6c 61 | 72 67 2c 6d 79 63 6f 6d | Nulla|rg,mycom|
|000009d0| 70 62 6c 6f 63 6b 29 29 | 3b 0d 09 73 61 77 5f 72 |pblock))|;..saw_r|
|000009e0| 65 74 75 72 6e 20 3d 20 | 46 41 4c 53 45 3b 0d 09 |eturn = |FALSE;..|
|000009f0| 63 6d 64 2d 3e 63 5f 66 | 6c 61 67 73 20 7c 3d 20 |cmd->c_f|lags |= |
|00000a00| 43 46 5f 54 45 52 4d 3b | 0d 09 63 6d 64 2d 3e 63 |CF_TERM;|..cmd->c|
|00000a10| 5f 68 65 61 64 20 3d 20 | 63 6d 64 3b 0d 20 20 20 |_head = |cmd;. |
|00000a20| 20 7d 0d 20 20 20 20 73 | 75 62 2d 3e 63 6d 64 20 | }. s|ub->cmd |
|00000a30| 3d 20 63 6d 64 3b 0d 20 | 20 20 20 69 66 20 28 70 |= cmd;. | if (p|
|00000a40| 65 72 6c 64 62 29 20 7b | 0d 09 53 54 52 20 2a 73 |erldb) {|..STR *s|
|00000a50| 74 72 3b 0d 09 53 54 52 | 20 2a 74 6d 70 73 74 72 |tr;..STR| *tmpstr|
|00000a60| 20 3d 20 73 74 72 5f 6d | 6f 72 74 61 6c 28 26 73 | = str_m|ortal(&s|
|00000a70| 74 72 5f 75 6e 64 65 66 | 29 3b 0d 0d 09 73 70 72 |tr_undef|);...spr|
|00000a80| 69 6e 74 66 28 62 75 66 | 2c 22 25 73 3a 25 6c 64 |intf(buf|,"%s:%ld|
|00000a90| 22 2c 73 74 61 62 5f 76 | 61 6c 28 63 75 72 63 6d |",stab_v|al(curcm|
|00000aa0| 64 2d 3e 63 5f 66 69 6c | 65 73 74 61 62 29 2d 3e |d->c_fil|estab)->|
|00000ab0| 73 74 72 5f 70 74 72 2c | 20 73 75 62 6c 69 6e 65 |str_ptr,| subline|
|00000ac0| 29 3b 0d 09 73 74 72 20 | 3d 20 73 74 72 5f 6d 61 |);..str |= str_ma|
|00000ad0| 6b 65 28 62 75 66 2c 30 | 29 3b 0d 09 73 74 72 5f |ke(buf,0|);..str_|
|00000ae0| 63 61 74 28 73 74 72 2c | 22 2d 22 29 3b 0d 09 73 |cat(str,|"-");..s|
|00000af0| 70 72 69 6e 74 66 28 62 | 75 66 2c 22 25 6c 64 22 |printf(b|uf,"%ld"|
|00000b00| 2c 28 6c 6f 6e 67 29 63 | 75 72 63 6d 64 2d 3e 63 |,(long)c|urcmd->c|
|00000b10| 5f 6c 69 6e 65 29 3b 0d | 09 73 74 72 5f 63 61 74 |_line);.|.str_cat|
|00000b20| 28 73 74 72 2c 62 75 66 | 29 3b 0d 09 73 74 61 62 |(str,buf|);..stab|
|00000b30| 5f 65 66 75 6c 6c 6e 61 | 6d 65 28 74 6d 70 73 74 |_efullna|me(tmpst|
|00000b40| 72 2c 73 74 61 62 29 3b | 0d 09 68 73 74 6f 72 65 |r,stab);|..hstore|
|00000b50| 28 73 74 61 62 5f 78 68 | 61 73 68 28 44 42 73 75 |(stab_xh|ash(DBsu|
|00000b60| 62 29 2c 20 74 6d 70 73 | 74 72 2d 3e 73 74 72 5f |b), tmps|tr->str_|
|00000b70| 70 74 72 2c 20 74 6d 70 | 73 74 72 2d 3e 73 74 72 |ptr, tmp|str->str|
|00000b80| 5f 63 75 72 2c 20 73 74 | 72 2c 20 30 29 3b 0d 20 |_cur, st|r, 0);. |
|00000b90| 20 20 20 7d 0d 20 20 20 | 20 53 61 66 65 66 72 65 | }. | Safefre|
|00000ba0| 65 28 6e 61 6d 65 29 3b | 0d 20 20 20 20 72 65 74 |e(name);|. ret|
|00000bb0| 75 72 6e 20 73 75 62 3b | 0d 7d 0d 0d 53 55 42 52 |urn sub;|.}..SUBR|
|00000bc0| 20 2a 0d 6d 61 6b 65 5f | 75 73 75 62 28 6e 61 6d | *.make_|usub(nam|
|00000bd0| 65 2c 20 69 78 2c 20 73 | 75 62 61 64 64 72 2c 20 |e, ix, s|ubaddr, |
|00000be0| 66 69 6c 65 6e 61 6d 65 | 29 0d 63 68 61 72 20 2a |filename|).char *|
|00000bf0| 6e 61 6d 65 3b 0d 69 6e | 74 20 69 78 3b 0d 69 6e |name;.in|t ix;.in|
|00000c00| 74 20 28 2a 73 75 62 61 | 64 64 72 29 28 29 3b 0d |t (*suba|ddr)();.|
|00000c10| 63 68 61 72 20 2a 66 69 | 6c 65 6e 61 6d 65 3b 0d |char *fi|lename;.|
|00000c20| 7b 0d 20 20 20 20 72 65 | 67 69 73 74 65 72 20 53 |{. re|gister S|
|00000c30| 55 42 52 20 2a 73 75 62 | 3b 0d 20 20 20 20 53 54 |UBR *sub|;. ST|
|00000c40| 41 42 20 2a 73 74 61 62 | 20 3d 20 73 74 61 62 65 |AB *stab| = stabe|
|00000c50| 6e 74 28 6e 61 6d 65 2c | 61 6c 6c 73 74 61 62 73 |nt(name,|allstabs|
|00000c60| 29 3b 0d 0d 20 20 20 20 | 69 66 20 28 21 73 74 61 |);.. |if (!sta|
|00000c70| 62 29 09 09 09 09 2f 2a | 20 75 6e 75 73 65 64 20 |b)..../*| unused |
|00000c80| 66 75 6e 63 74 69 6f 6e | 20 2a 2f 0d 09 72 65 74 |function| */..ret|
|00000c90| 75 72 6e 20 4e 75 6c 6c | 28 53 55 42 52 2a 29 3b |urn Null|(SUBR*);|
|00000ca0| 0d 20 20 20 20 69 66 20 | 28 73 75 62 20 3d 20 73 |. if |(sub = s|
|00000cb0| 74 61 62 5f 73 75 62 28 | 73 74 61 62 29 29 20 7b |tab_sub(|stab)) {|
|00000cc0| 0d 09 69 66 20 28 64 6f | 77 61 72 6e 29 0d 09 20 |..if (do|warn).. |
|00000cd0| 20 20 20 77 61 72 6e 28 | 22 53 75 62 72 6f 75 74 | warn(|"Subrout|
|00000ce0| 69 6e 65 20 25 73 20 72 | 65 64 65 66 69 6e 65 64 |ine %s r|edefined|
|00000cf0| 22 2c 6e 61 6d 65 29 3b | 0d 09 69 66 20 28 21 73 |",name);|..if (!s|
|00000d00| 75 62 2d 3e 75 73 65 72 | 73 75 62 20 26 26 20 73 |ub->user|sub && s|
|00000d10| 75 62 2d 3e 63 6d 64 29 | 20 7b 0d 09 20 20 20 20 |ub->cmd)| {.. |
|00000d20| 63 6d 64 5f 66 72 65 65 | 28 73 75 62 2d 3e 63 6d |cmd_free|(sub->cm|
|00000d30| 64 29 3b 0d 09 20 20 20 | 20 73 75 62 2d 3e 63 6d |d);.. | sub->cm|
|00000d40| 64 20 3d 20 4e 75 6c 6c | 63 6d 64 3b 0d 09 20 20 |d = Null|cmd;.. |
|00000d50| 20 20 61 66 72 65 65 28 | 73 75 62 2d 3e 74 6f 73 | afree(|sub->tos|
|00000d60| 61 76 65 29 3b 0d 09 7d | 0d 09 53 61 66 65 66 72 |ave);..}|..Safefr|
|00000d70| 65 65 28 73 75 62 29 3b | 0d 20 20 20 20 7d 0d 20 |ee(sub);|. }. |
|00000d80| 20 20 20 4e 65 77 7a 28 | 31 30 31 2c 73 75 62 2c | Newz(|101,sub,|
|00000d90| 31 2c 53 55 42 52 29 3b | 0d 20 20 20 20 73 74 61 |1,SUBR);|. sta|
|00000da0| 62 5f 73 75 62 28 73 74 | 61 62 29 20 3d 20 73 75 |b_sub(st|ab) = su|
|00000db0| 62 3b 0d 20 20 20 20 73 | 75 62 2d 3e 66 69 6c 65 |b;. s|ub->file|
|00000dc0| 73 74 61 62 20 3d 20 66 | 73 74 61 62 28 66 69 6c |stab = f|stab(fil|
|00000dd0| 65 6e 61 6d 65 29 3b 0d | 20 20 20 20 73 75 62 2d |ename);.| sub-|
|00000de0| 3e 75 73 65 72 73 75 62 | 20 3d 20 73 75 62 61 64 |>usersub| = subad|
|00000df0| 64 72 3b 0d 20 20 20 20 | 73 75 62 2d 3e 75 73 65 |dr;. |sub->use|
|00000e00| 72 69 6e 64 65 78 20 3d | 20 69 78 3b 0d 20 20 20 |rindex =| ix;. |
|00000e10| 20 72 65 74 75 72 6e 20 | 73 75 62 3b 0d 7d 0d 0d | return |sub;.}..|
|00000e20| 76 6f 69 64 0d 6d 61 6b | 65 5f 66 6f 72 6d 28 73 |void.mak|e_form(s|
|00000e30| 74 61 62 2c 66 63 6d 64 | 29 0d 53 54 41 42 20 2a |tab,fcmd|).STAB *|
|00000e40| 73 74 61 62 3b 0d 46 43 | 4d 44 20 2a 66 63 6d 64 |stab;.FC|MD *fcmd|
|00000e50| 3b 0d 7b 0d 20 20 20 20 | 69 66 20 28 73 74 61 62 |;.{. |if (stab|
|00000e60| 5f 66 6f 72 6d 28 73 74 | 61 62 29 29 20 7b 0d 09 |_form(st|ab)) {..|
|00000e70| 46 43 4d 44 20 2a 74 6d | 70 66 63 6d 64 3b 0d 09 |FCMD *tm|pfcmd;..|
|00000e80| 46 43 4d 44 20 2a 6e 65 | 78 74 66 63 6d 64 3b 0d |FCMD *ne|xtfcmd;.|
|00000e90| 0d 09 66 6f 72 20 28 74 | 6d 70 66 63 6d 64 20 3d |..for (t|mpfcmd =|
|00000ea0| 20 73 74 61 62 5f 66 6f | 72 6d 28 73 74 61 62 29 | stab_fo|rm(stab)|
|00000eb0| 3b 20 74 6d 70 66 63 6d | 64 3b 20 74 6d 70 66 63 |; tmpfcm|d; tmpfc|
|00000ec0| 6d 64 20 3d 20 6e 65 78 | 74 66 63 6d 64 29 20 7b |md = nex|tfcmd) {|
|00000ed0| 0d 09 20 20 20 20 6e 65 | 78 74 66 63 6d 64 20 3d |.. ne|xtfcmd =|
|00000ee0| 20 74 6d 70 66 63 6d 64 | 2d 3e 66 5f 6e 65 78 74 | tmpfcmd|->f_next|
|00000ef0| 3b 0d 09 20 20 20 20 69 | 66 20 28 74 6d 70 66 63 |;.. i|f (tmpfc|
|00000f00| 6d 64 2d 3e 66 5f 65 78 | 70 72 29 0d 09 09 61 72 |md->f_ex|pr)...ar|
|00000f10| 67 5f 66 72 65 65 28 74 | 6d 70 66 63 6d 64 2d 3e |g_free(t|mpfcmd->|
|00000f20| 66 5f 65 78 70 72 29 3b | 0d 09 20 20 20 20 69 66 |f_expr);|.. if|
|00000f30| 20 28 74 6d 70 66 63 6d | 64 2d 3e 66 5f 75 6e 70 | (tmpfcm|d->f_unp|
|00000f40| 61 72 73 65 64 29 0d 09 | 09 73 74 72 5f 66 72 65 |arsed)..|.str_fre|
|00000f50| 65 28 74 6d 70 66 63 6d | 64 2d 3e 66 5f 75 6e 70 |e(tmpfcm|d->f_unp|
|00000f60| 61 72 73 65 64 29 3b 0d | 09 20 20 20 20 69 66 20 |arsed);.|. if |
|00000f70| 28 74 6d 70 66 63 6d 64 | 2d 3e 66 5f 70 72 65 29 |(tmpfcmd|->f_pre)|
|00000f80| 0d 09 09 53 61 66 65 66 | 72 65 65 28 74 6d 70 66 |...Safef|ree(tmpf|
|00000f90| 63 6d 64 2d 3e 66 5f 70 | 72 65 29 3b 0d 09 20 20 |cmd->f_p|re);.. |
|00000fa0| 20 20 53 61 66 65 66 72 | 65 65 28 74 6d 70 66 63 | Safefr|ee(tmpfc|
|00000fb0| 6d 64 29 3b 0d 09 7d 0d | 20 20 20 20 7d 0d 20 20 |md);..}.| }. |
|00000fc0| 20 20 73 74 61 62 5f 66 | 6f 72 6d 28 73 74 61 62 | stab_f|orm(stab|
|00000fd0| 29 20 3d 20 66 63 6d 64 | 3b 0d 7d 0d 0d 43 4d 44 |) = fcmd|;.}..CMD|
|00000fe0| 20 2a 0d 62 6c 6f 63 6b | 5f 68 65 61 64 28 74 61 | *.block|_head(ta|
|00000ff0| 69 6c 29 0d 72 65 67 69 | 73 74 65 72 20 43 4d 44 |il).regi|ster CMD|
|00001000| 20 2a 74 61 69 6c 3b 0d | 7b 0d 20 20 20 20 43 4d | *tail;.|{. CM|
|00001010| 44 20 2a 68 65 61 64 3b | 0d 20 20 20 20 72 65 67 |D *head;|. reg|
|00001020| 69 73 74 65 72 20 69 6e | 74 20 6f 70 74 3b 0d 20 |ister in|t opt;. |
|00001030| 20 20 20 72 65 67 69 73 | 74 65 72 20 69 6e 74 20 | regis|ter int |
|00001040| 6c 61 73 74 5f 6f 70 74 | 20 3d 20 30 3b 0d 20 20 |last_opt| = 0;. |
|00001050| 20 20 72 65 67 69 73 74 | 65 72 20 53 54 41 42 20 | regist|er STAB |
|00001060| 2a 6c 61 73 74 5f 73 74 | 61 62 20 3d 20 4e 75 6c |*last_st|ab = Nul|
|00001070| 6c 73 74 61 62 3b 0d 20 | 20 20 20 72 65 67 69 73 |lstab;. | regis|
|00001080| 74 65 72 20 69 6e 74 20 | 63 6f 75 6e 74 20 3d 20 |ter int |count = |
|00001090| 30 3b 0d 20 20 20 20 72 | 65 67 69 73 74 65 72 20 |0;. r|egister |
|000010a0| 43 4d 44 20 2a 73 77 69 | 74 63 68 62 65 67 20 3d |CMD *swi|tchbeg =|
|000010b0| 20 4e 75 6c 6c 63 6d 64 | 3b 0d 0d 20 20 20 20 69 | Nullcmd|;.. i|
|000010c0| 66 20 28 74 61 69 6c 20 | 3d 3d 20 4e 75 6c 6c 63 |f (tail |== Nullc|
|000010d0| 6d 64 29 20 7b 0d 09 72 | 65 74 75 72 6e 20 74 61 |md) {..r|eturn ta|
|000010e0| 69 6c 3b 0d 20 20 20 20 | 7d 0d 20 20 20 20 68 65 |il;. |}. he|
|000010f0| 61 64 20 3d 20 74 61 69 | 6c 2d 3e 63 5f 68 65 61 |ad = tai|l->c_hea|
|00001100| 64 3b 0d 0d 20 20 20 20 | 66 6f 72 20 28 74 61 69 |d;.. |for (tai|
|00001110| 6c 20 3d 20 68 65 61 64 | 3b 20 74 61 69 6c 3b 20 |l = head|; tail; |
|00001120| 74 61 69 6c 20 3d 20 74 | 61 69 6c 2d 3e 63 5f 6e |tail = t|ail->c_n|
|00001130| 65 78 74 29 20 7b 0d 0d | 09 2f 2a 20 73 61 76 65 |ext) {..|./* save|
|00001140| 20 6f 6e 65 20 6d 65 61 | 73 6c 79 20 64 65 72 65 | one mea|sly dere|
|00001150| 66 65 72 65 6e 63 65 20 | 61 74 20 72 75 6e 74 69 |ference |at runti|
|00001160| 6d 65 20 2a 2f 0d 09 69 | 66 20 28 74 61 69 6c 2d |me */..i|f (tail-|
|00001170| 3e 63 5f 74 79 70 65 20 | 3d 3d 20 43 5f 49 46 29 |>c_type |== C_IF)|
|00001180| 20 7b 0d 09 20 20 20 20 | 69 66 20 28 21 28 74 61 | {.. |if (!(ta|
|00001190| 69 6c 2d 3e 75 63 6d 64 | 2e 63 63 6d 64 2e 63 63 |il->ucmd|.ccmd.cc|
|000011a0| 5f 61 6c 74 20 3d 20 74 | 61 69 6c 2d 3e 75 63 6d |_alt = t|ail->ucm|
|000011b0| 64 2e 63 63 6d 64 2e 63 | 63 5f 61 6c 74 2d 3e 63 |d.ccmd.c|c_alt->c|
|000011c0| 5f 6e 65 78 74 29 29 0d | 09 09 74 61 69 6c 2d 3e |_next)).|..tail->|
|000011d0| 63 5f 66 6c 61 67 73 20 | 7c 3d 20 43 46 5f 54 45 |c_flags ||= CF_TE|
|000011e0| 52 4d 3b 0d 09 7d 0d 09 | 65 6c 73 65 20 69 66 20 |RM;..}..|else if |
|000011f0| 28 74 61 69 6c 2d 3e 63 | 5f 74 79 70 65 20 3d 3d |(tail->c|_type ==|
|00001200| 20 43 5f 45 58 50 52 29 | 20 7b 0d 09 20 20 20 20 | C_EXPR)| {.. |
|00001210| 41 52 47 20 2a 61 72 67 | 3b 0d 0d 09 20 20 20 20 |ARG *arg|;... |
|00001220| 69 66 20 28 74 61 69 6c | 2d 3e 75 63 6d 64 2e 61 |if (tail|->ucmd.a|
|00001230| 63 6d 64 2e 61 63 5f 65 | 78 70 72 29 0d 09 09 61 |cmd.ac_e|xpr)...a|
|00001240| 72 67 20 3d 20 74 61 69 | 6c 2d 3e 75 63 6d 64 2e |rg = tai|l->ucmd.|
|00001250| 61 63 6d 64 2e 61 63 5f | 65 78 70 72 3b 0d 09 20 |acmd.ac_|expr;.. |
|00001260| 20 20 20 65 6c 73 65 0d | 09 09 61 72 67 20 3d 20 | else.|..arg = |
|00001270| 74 61 69 6c 2d 3e 63 5f | 65 78 70 72 3b 0d 09 20 |tail->c_|expr;.. |
|00001280| 20 20 20 69 66 20 28 61 | 72 67 29 20 7b 0d 09 09 | if (a|rg) {...|
|00001290| 69 66 20 28 61 72 67 2d | 3e 61 72 67 5f 74 79 70 |if (arg-|>arg_typ|
|000012a0| 65 20 3d 3d 20 4f 5f 52 | 45 54 55 52 4e 29 0d 09 |e == O_R|ETURN)..|
|000012b0| 09 20 20 20 20 74 61 69 | 6c 2d 3e 63 5f 66 6c 61 |. tai|l->c_fla|
|000012c0| 67 73 20 7c 3d 20 43 46 | 5f 54 45 52 4d 3b 0d 09 |gs |= CF|_TERM;..|
|000012d0| 09 65 6c 73 65 20 69 66 | 20 28 61 72 67 2d 3e 61 |.else if| (arg->a|
|000012e0| 72 67 5f 74 79 70 65 20 | 3d 3d 20 4f 5f 49 54 45 |rg_type |== O_ITE|
|000012f0| 4d 20 26 26 20 61 72 67 | 5b 31 5d 2e 61 72 67 5f |M && arg|[1].arg_|
|00001300| 74 79 70 65 20 3d 3d 20 | 41 5f 43 4d 44 29 0d 09 |type == |A_CMD)..|
|00001310| 09 20 20 20 20 74 61 69 | 6c 2d 3e 63 5f 66 6c 61 |. tai|l->c_fla|
|00001320| 67 73 20 7c 3d 20 43 46 | 5f 54 45 52 4d 3b 0d 09 |gs |= CF|_TERM;..|
|00001330| 20 20 20 20 7d 0d 09 7d | 0d 09 69 66 20 28 21 74 | }..}|..if (!t|
|00001340| 61 69 6c 2d 3e 63 5f 6e | 65 78 74 29 0d 09 20 20 |ail->c_n|ext).. |
|00001350| 20 20 74 61 69 6c 2d 3e | 63 5f 66 6c 61 67 73 20 | tail->|c_flags |
|00001360| 7c 3d 20 43 46 5f 54 45 | 52 4d 3b 0d 0d 09 69 66 ||= CF_TE|RM;...if|
|00001370| 20 28 74 61 69 6c 2d 3e | 63 5f 65 78 70 72 20 26 | (tail->|c_expr &|
|00001380| 26 20 28 74 61 69 6c 2d | 3e 63 5f 66 6c 61 67 73 |& (tail-|>c_flags|
|00001390| 20 26 20 43 46 5f 4f 50 | 54 49 4d 49 5a 45 29 20 | & CF_OP|TIMIZE) |
|000013a0| 3d 3d 20 43 46 54 5f 46 | 41 4c 53 45 29 0d 09 20 |== CFT_F|ALSE).. |
|000013b0| 20 20 20 6f 70 74 5f 61 | 72 67 28 74 61 69 6c 2c | opt_a|rg(tail,|
|000013c0| 31 2c 20 74 61 69 6c 2d | 3e 63 5f 74 79 70 65 20 |1, tail-|>c_type |
|000013d0| 3d 3d 20 43 5f 45 58 50 | 52 29 3b 0d 0d 09 2f 2a |== C_EXP|R);.../*|
|000013e0| 20 6e 6f 77 20 64 6f 20 | 61 20 6c 69 74 74 6c 65 | now do |a little|
|000013f0| 20 6f 70 74 69 6d 69 7a | 61 74 69 6f 6e 20 6f 6e | optimiz|ation on|
|00001400| 20 63 61 73 65 2d 69 73 | 68 20 73 74 72 75 63 74 | case-is|h struct|
|00001410| 75 72 65 73 20 2a 2f 0d | 09 73 77 69 74 63 68 28 |ures */.|.switch(|
|00001420| 74 61 69 6c 2d 3e 63 5f | 66 6c 61 67 73 20 26 20 |tail->c_|flags & |
|00001430| 28 43 46 5f 4f 50 54 49 | 4d 49 5a 45 7c 43 46 5f |(CF_OPTI|MIZE|CF_|
|00001440| 46 49 52 53 54 4e 45 47 | 7c 43 46 5f 49 4e 56 45 |FIRSTNEG||CF_INVE|
|00001450| 52 54 29 29 20 7b 0d 09 | 63 61 73 65 20 43 46 54 |RT)) {..|case CFT|
|00001460| 5f 41 4e 43 48 4f 52 3a | 0d 09 63 61 73 65 20 43 |_ANCHOR:|..case C|
|00001470| 46 54 5f 53 54 52 4f 50 | 3a 0d 09 20 20 20 20 6f |FT_STROP|:.. o|
|00001480| 70 74 20 3d 20 28 74 61 | 69 6c 2d 3e 63 5f 66 6c |pt = (ta|il->c_fl|
|00001490| 61 67 73 20 26 20 43 46 | 5f 4e 45 53 55 52 45 29 |ags & CF|_NESURE)|
|000014a0| 20 3f 20 43 46 54 5f 53 | 54 52 4f 50 20 3a 20 30 | ? CFT_S|TROP : 0|
|000014b0| 3b 0d 09 20 20 20 20 62 | 72 65 61 6b 3b 0d 09 63 |;.. b|reak;..c|
|000014c0| 61 73 65 20 43 46 54 5f | 43 43 4c 41 53 53 3a 0d |ase CFT_|CCLASS:.|
|000014d0| 09 20 20 20 20 6f 70 74 | 20 3d 20 43 46 54 5f 53 |. opt| = CFT_S|
|000014e0| 54 52 4f 50 3b 0d 09 20 | 20 20 20 62 72 65 61 6b |TROP;.. | break|
|000014f0| 3b 0d 09 63 61 73 65 20 | 43 46 54 5f 4e 55 4d 4f |;..case |CFT_NUMO|
|00001500| 50 3a 0d 09 20 20 20 20 | 6f 70 74 20 3d 20 28 74 |P:.. |opt = (t|
|00001510| 61 69 6c 2d 3e 63 5f 73 | 6c 65 6e 20 3d 3d 20 4f |ail->c_s|len == O|
|00001520| 5f 4e 45 20 3f 20 30 20 | 3a 20 43 46 54 5f 4e 55 |_NE ? 0 |: CFT_NU|
|00001530| 4d 4f 50 29 3b 0d 09 20 | 20 20 20 69 66 20 28 28 |MOP);.. | if ((|
|00001540| 74 61 69 6c 2d 3e 63 5f | 66 6c 61 67 73 26 28 43 |tail->c_|flags&(C|
|00001550| 46 5f 4e 45 53 55 52 45 | 7c 43 46 5f 45 51 53 55 |F_NESURE||CF_EQSU|
|00001560| 52 45 29 29 20 21 3d 20 | 28 43 46 5f 4e 45 53 55 |RE)) != |(CF_NESU|
|00001570| 52 45 7c 43 46 5f 45 51 | 53 55 52 45 29 29 0d 09 |RE|CF_EQ|SURE))..|
|00001580| 09 6f 70 74 20 3d 20 30 | 3b 0d 09 20 20 20 20 62 |.opt = 0|;.. b|
|00001590| 72 65 61 6b 3b 0d 09 64 | 65 66 61 75 6c 74 3a 0d |reak;..d|efault:.|
|000015a0| 09 20 20 20 20 6f 70 74 | 20 3d 20 30 3b 0d 09 7d |. opt| = 0;..}|
|000015b0| 0d 09 69 66 20 28 6f 70 | 74 20 26 26 20 6f 70 74 |..if (op|t && opt|
|000015c0| 20 3d 3d 20 6c 61 73 74 | 5f 6f 70 74 20 26 26 20 | == last|_opt && |
|000015d0| 74 61 69 6c 2d 3e 63 5f | 73 74 61 62 20 3d 3d 20 |tail->c_|stab == |
|000015e0| 6c 61 73 74 5f 73 74 61 | 62 29 0d 09 20 20 20 20 |last_sta|b).. |
|000015f0| 63 6f 75 6e 74 2b 2b 3b | 0d 09 65 6c 73 65 20 7b |count++;|..else {|
|00001600| 0d 09 20 20 20 20 69 66 | 20 28 63 6f 75 6e 74 20 |.. if| (count |
|00001610| 3e 3d 20 33 29 20 7b 09 | 09 2f 2a 20 69 73 20 74 |>= 3) {.|./* is t|
|00001620| 68 69 73 20 74 68 65 20 | 62 72 65 61 6b 65 76 65 |his the |breakeve|
|00001630| 6e 20 70 6f 69 6e 74 3f | 20 2a 2f 0d 09 09 69 66 |n point?| */...if|
|00001640| 20 28 6c 61 73 74 5f 6f | 70 74 20 3d 3d 20 43 46 | (last_o|pt == CF|
|00001650| 54 5f 4e 55 4d 4f 50 29 | 0d 09 09 20 20 20 20 6d |T_NUMOP)|... m|
|00001660| 61 6b 65 5f 6e 73 77 69 | 74 63 68 28 73 77 69 74 |ake_nswi|tch(swit|
|00001670| 63 68 62 65 67 2c 63 6f | 75 6e 74 29 3b 0d 09 09 |chbeg,co|unt);...|
|00001680| 65 6c 73 65 0d 09 09 20 | 20 20 20 6d 61 6b 65 5f |else... | make_|
|00001690| 63 73 77 69 74 63 68 28 | 73 77 69 74 63 68 62 65 |cswitch(|switchbe|
|000016a0| 67 2c 63 6f 75 6e 74 29 | 3b 0d 09 20 20 20 20 7d |g,count)|;.. }|
|000016b0| 0d 09 20 20 20 20 69 66 | 20 28 6f 70 74 29 20 7b |.. if| (opt) {|
|000016c0| 0d 09 09 63 6f 75 6e 74 | 20 3d 20 31 3b 0d 09 09 |...count| = 1;...|
|000016d0| 73 77 69 74 63 68 62 65 | 67 20 3d 20 74 61 69 6c |switchbe|g = tail|
|000016e0| 3b 0d 09 20 20 20 20 7d | 0d 09 20 20 20 20 65 6c |;.. }|.. el|
|000016f0| 73 65 0d 09 09 63 6f 75 | 6e 74 20 3d 20 30 3b 0d |se...cou|nt = 0;.|
|00001700| 09 7d 0d 09 6c 61 73 74 | 5f 6f 70 74 20 3d 20 6f |.}..last|_opt = o|
|00001710| 70 74 3b 0d 09 6c 61 73 | 74 5f 73 74 61 62 20 3d |pt;..las|t_stab =|
|00001720| 20 74 61 69 6c 2d 3e 63 | 5f 73 74 61 62 3b 0d 20 | tail->c|_stab;. |
|00001730| 20 20 20 7d 0d 20 20 20 | 20 69 66 20 28 63 6f 75 | }. | if (cou|
|00001740| 6e 74 20 3e 3d 20 33 29 | 20 7b 09 09 2f 2a 20 69 |nt >= 3)| {../* i|
|00001750| 73 20 74 68 69 73 20 74 | 68 65 20 62 72 65 61 6b |s this t|he break|
|00001760| 65 76 65 6e 20 70 6f 69 | 6e 74 3f 20 2a 2f 0d 09 |even poi|nt? */..|
|00001770| 69 66 20 28 6c 61 73 74 | 5f 6f 70 74 20 3d 3d 20 |if (last|_opt == |
|00001780| 43 46 54 5f 4e 55 4d 4f | 50 29 0d 09 20 20 20 20 |CFT_NUMO|P).. |
|00001790| 6d 61 6b 65 5f 6e 73 77 | 69 74 63 68 28 73 77 69 |make_nsw|itch(swi|
|000017a0| 74 63 68 62 65 67 2c 63 | 6f 75 6e 74 29 3b 0d 09 |tchbeg,c|ount);..|
|000017b0| 65 6c 73 65 0d 09 20 20 | 20 20 6d 61 6b 65 5f 63 |else.. | make_c|
|000017c0| 73 77 69 74 63 68 28 73 | 77 69 74 63 68 62 65 67 |switch(s|witchbeg|
|000017d0| 2c 63 6f 75 6e 74 29 3b | 0d 20 20 20 20 7d 0d 20 |,count);|. }. |
|000017e0| 20 20 20 72 65 74 75 72 | 6e 20 68 65 61 64 3b 0d | retur|n head;.|
|000017f0| 7d 0d 0d 2f 2a 20 57 65 | 27 76 65 20 73 70 6f 74 |}../* We|'ve spot|
|00001800| 74 65 64 20 61 20 73 65 | 71 75 65 6e 63 65 20 6f |ted a se|quence o|
|00001810| 66 20 43 4d 44 73 20 74 | 68 61 74 20 61 6c 6c 20 |f CMDs t|hat all |
|00001820| 74 65 73 74 20 74 68 65 | 20 76 61 6c 75 65 20 6f |test the| value o|
|00001830| 66 20 74 68 65 20 73 61 | 6d 65 0d 20 2a 20 73 70 |f the sa|me. * sp|
|00001840| 61 74 2e 20 20 54 68 75 | 73 20 77 65 20 63 61 6e |at. Thu|s we can|
|00001850| 20 69 6e 73 65 72 74 20 | 61 20 53 57 49 54 43 48 | insert |a SWITCH|
|00001860| 20 69 6e 20 66 72 6f 6e | 74 20 61 6e 64 20 6a 75 | in fron|t and ju|
|00001870| 6d 70 20 64 69 72 65 63 | 74 6c 79 0d 20 2a 20 74 |mp direc|tly. * t|
|00001880| 6f 20 74 68 65 20 63 6f | 72 72 65 63 74 20 6f 6e |o the co|rrect on|
|00001890| 65 2e 0d 20 2a 2f 0d 73 | 74 61 74 69 63 20 76 6f |e.. */.s|tatic vo|
|000018a0| 69 64 0d 6d 61 6b 65 5f | 63 73 77 69 74 63 68 28 |id.make_|cswitch(|
|000018b0| 68 65 61 64 2c 63 6f 75 | 6e 74 29 0d 72 65 67 69 |head,cou|nt).regi|
|000018c0| 73 74 65 72 20 43 4d 44 | 20 2a 68 65 61 64 3b 0d |ster CMD| *head;.|
|000018d0| 69 6e 74 20 63 6f 75 6e | 74 3b 0d 7b 0d 20 20 20 |int coun|t;.{. |
|000018e0| 20 72 65 67 69 73 74 65 | 72 20 43 4d 44 20 2a 63 | registe|r CMD *c|
|000018f0| 75 72 3b 0d 20 20 20 20 | 72 65 67 69 73 74 65 72 |ur;. |register|
|00001900| 20 43 4d 44 20 2a 2a 6c | 6f 63 3b 0d 20 20 20 20 | CMD **l|oc;. |
|00001910| 72 65 67 69 73 74 65 72 | 20 69 6e 74 20 69 3b 0d |register| int i;.|
|00001920| 20 20 20 20 72 65 67 69 | 73 74 65 72 20 69 6e 74 | regi|ster int|
|00001930| 20 6d 69 6e 20 3d 20 32 | 35 35 3b 0d 20 20 20 20 | min = 2|55;. |
|00001940| 72 65 67 69 73 74 65 72 | 20 69 6e 74 20 6d 61 78 |register| int max|
|00001950| 20 3d 20 30 3b 0d 0d 20 | 20 20 20 2f 2a 20 6d 61 | = 0;.. | /* ma|
|00001960| 6b 65 20 61 20 6e 65 77 | 20 68 65 61 64 20 69 6e |ke a new| head in|
|00001970| 20 74 68 65 20 65 78 61 | 63 74 20 73 61 6d 65 20 | the exa|ct same |
|00001980| 73 70 6f 74 20 2a 2f 0d | 20 20 20 20 4e 65 77 28 |spot */.| New(|
|00001990| 31 30 32 2c 63 75 72 2c | 20 31 2c 20 43 4d 44 29 |102,cur,| 1, CMD)|
|000019a0| 3b 0d 20 20 20 20 53 74 | 72 75 63 74 43 6f 70 79 |;. St|ructCopy|
|000019b0| 28 68 65 61 64 2c 63 75 | 72 2c 43 4d 44 29 3b 0d |(head,cu|r,CMD);.|
|000019c0| 20 20 20 20 5a 65 72 6f | 28 68 65 61 64 2c 31 2c | Zero|(head,1,|
|000019d0| 43 4d 44 29 3b 0d 20 20 | 20 20 68 65 61 64 2d 3e |CMD);. | head->|
|000019e0| 63 5f 68 65 61 64 20 3d | 20 63 75 72 2d 3e 63 5f |c_head =| cur->c_|
|000019f0| 68 65 61 64 3b 0d 20 20 | 20 20 68 65 61 64 2d 3e |head;. | head->|
|00001a00| 63 5f 74 79 70 65 20 3d | 20 43 5f 43 53 57 49 54 |c_type =| C_CSWIT|
|00001a10| 43 48 3b 0d 20 20 20 20 | 68 65 61 64 2d 3e 63 5f |CH;. |head->c_|
|00001a20| 6e 65 78 74 20 3d 20 63 | 75 72 3b 09 09 2f 2a 20 |next = c|ur;../* |
|00001a30| 69 6e 73 65 72 74 20 6e | 65 77 20 63 6d 64 20 61 |insert n|ew cmd a|
|00001a40| 74 20 66 72 6f 6e 74 20 | 6f 66 20 6c 69 73 74 20 |t front |of list |
|00001a50| 2a 2f 0d 20 20 20 20 68 | 65 61 64 2d 3e 63 5f 73 |*/. h|ead->c_s|
|00001a60| 74 61 62 20 3d 20 63 75 | 72 2d 3e 63 5f 73 74 61 |tab = cu|r->c_sta|
|00001a70| 62 3b 0d 0d 20 20 20 20 | 4e 65 77 7a 28 31 30 33 |b;.. |Newz(103|
|00001a80| 2c 6c 6f 63 2c 32 35 38 | 2c 43 4d 44 2a 29 3b 0d |,loc,258|,CMD*);.|
|00001a90| 20 20 20 20 6c 6f 63 2b | 2b 3b 09 09 09 09 2f 2a | loc+|+;..../*|
|00001aa0| 20 6c 69 65 20 61 20 6c | 69 74 74 6c 65 20 2a 2f | lie a l|ittle */|
|00001ab0| 0d 20 20 20 20 77 68 69 | 6c 65 20 28 63 6f 75 6e |. whi|le (coun|
|00001ac0| 74 2d 2d 29 20 7b 0d 09 | 69 66 20 28 28 63 75 72 |t--) {..|if ((cur|
|00001ad0| 2d 3e 63 5f 66 6c 61 67 | 73 20 26 20 43 46 5f 4f |->c_flag|s & CF_O|
|00001ae0| 50 54 49 4d 49 5a 45 29 | 20 3d 3d 20 43 46 54 5f |PTIMIZE)| == CFT_|
|00001af0| 43 43 4c 41 53 53 29 20 | 7b 0d 09 20 20 20 20 66 |CCLASS) |{.. f|
|00001b00| 6f 72 20 28 69 20 3d 20 | 30 3b 20 69 20 3c 3d 20 |or (i = |0; i <= |
|00001b10| 32 35 35 3b 20 69 2b 2b | 29 20 7b 0d 09 09 69 66 |255; i++|) {...if|
|00001b20| 20 28 21 6c 6f 63 5b 69 | 5d 20 26 26 20 63 75 72 | (!loc[i|] && cur|
|00001b30| 2d 3e 63 5f 73 68 6f 72 | 74 2d 3e 73 74 72 5f 70 |->c_shor|t->str_p|
|00001b40| 74 72 5b 69 3e 3e 33 5d | 20 26 20 28 31 20 3c 3c |tr[i>>3]| & (1 <<|
|00001b50| 20 28 69 26 37 29 29 29 | 20 7b 0d 09 09 20 20 20 | (i&7)))| {... |
|00001b60| 20 6c 6f 63 5b 69 5d 20 | 3d 20 63 75 72 3b 0d 09 | loc[i] |= cur;..|
|00001b70| 09 20 20 20 20 69 66 20 | 28 69 20 3c 20 6d 69 6e |. if |(i < min|
|00001b80| 29 0d 09 09 09 6d 69 6e | 20 3d 20 69 3b 0d 09 09 |)....min| = i;...|
|00001b90| 20 20 20 20 69 66 20 28 | 69 20 3e 20 6d 61 78 29 | if (|i > max)|
|00001ba0| 0d 09 09 09 6d 61 78 20 | 3d 20 69 3b 0d 09 09 7d |....max |= i;...}|
|00001bb0| 0d 09 20 20 20 20 7d 0d | 09 7d 0d 09 65 6c 73 65 |.. }.|.}..else|
|00001bc0| 20 7b 0d 09 20 20 20 20 | 69 20 3d 20 2a 63 75 72 | {.. |i = *cur|
|00001bd0| 2d 3e 63 5f 73 68 6f 72 | 74 2d 3e 73 74 72 5f 70 |->c_shor|t->str_p|
|00001be0| 74 72 20 26 20 32 35 35 | 3b 0d 09 20 20 20 20 69 |tr & 255|;.. i|
|00001bf0| 66 20 28 21 6c 6f 63 5b | 69 5d 29 20 7b 0d 09 09 |f (!loc[|i]) {...|
|00001c00| 6c 6f 63 5b 69 5d 20 3d | 20 63 75 72 3b 0d 09 09 |loc[i] =| cur;...|
|00001c10| 69 66 20 28 69 20 3c 20 | 6d 69 6e 29 0d 09 09 20 |if (i < |min)... |
|00001c20| 20 20 20 6d 69 6e 20 3d | 20 69 3b 0d 09 09 69 66 | min =| i;...if|
|00001c30| 20 28 69 20 3e 20 6d 61 | 78 29 0d 09 09 20 20 20 | (i > ma|x)... |
|00001c40| 20 6d 61 78 20 3d 20 69 | 3b 0d 09 20 20 20 20 7d | max = i|;.. }|
|00001c50| 0d 09 7d 0d 09 63 75 72 | 20 3d 20 63 75 72 2d 3e |..}..cur| = cur->|
|00001c60| 63 5f 6e 65 78 74 3b 0d | 20 20 20 20 7d 0d 20 20 |c_next;.| }. |
|00001c70| 20 20 6d 61 78 2b 2b 3b | 0d 20 20 20 20 69 66 20 | max++;|. if |
|00001c80| 28 6d 69 6e 20 3e 20 30 | 29 0d 09 4d 6f 76 65 28 |(min > 0|)..Move(|
|00001c90| 26 6c 6f 63 5b 6d 69 6e | 5d 2c 26 6c 6f 63 5b 30 |&loc[min|],&loc[0|
|00001ca0| 5d 2c 20 6d 61 78 20 2d | 20 6d 69 6e 2c 20 43 4d |], max -| min, CM|
|00001cb0| 44 2a 29 3b 0d 20 20 20 | 20 6c 6f 63 2d 2d 3b 0d |D*);. | loc--;.|
|00001cc0| 20 20 20 20 6d 69 6e 2d | 2d 3b 0d 20 20 20 20 6d | min-|-;. m|
|00001cd0| 61 78 20 2d 3d 20 6d 69 | 6e 3b 0d 20 20 20 20 66 |ax -= mi|n;. f|
|00001ce0| 6f 72 20 28 69 20 3d 20 | 30 3b 20 69 20 3c 3d 20 |or (i = |0; i <= |
|00001cf0| 6d 61 78 3b 20 69 2b 2b | 29 0d 09 69 66 20 28 21 |max; i++|)..if (!|
|00001d00| 6c 6f 63 5b 69 5d 29 0d | 09 20 20 20 20 6c 6f 63 |loc[i]).|. loc|
|00001d10| 5b 69 5d 20 3d 20 63 75 | 72 3b 0d 20 20 20 20 52 |[i] = cu|r;. R|
|00001d20| 65 6e 65 77 28 6c 6f 63 | 2c 6d 61 78 2b 31 2c 43 |enew(loc|,max+1,C|
|00001d30| 4d 44 2a 29 3b 09 2f 2a | 20 63 68 6f 70 20 69 74 |MD*);./*| chop it|
|00001d40| 20 64 6f 77 6e 20 74 6f | 20 73 69 7a 65 20 2a 2f | down to| size */|
|00001d50| 0d 20 20 20 20 68 65 61 | 64 2d 3e 75 63 6d 64 2e |. hea|d->ucmd.|
|00001d60| 73 63 6d 64 2e 73 63 5f | 6f 66 66 73 65 74 20 3d |scmd.sc_|offset =|
|00001d70| 20 6d 69 6e 3b 0d 20 20 | 20 20 68 65 61 64 2d 3e | min;. | head->|
|00001d80| 75 63 6d 64 2e 73 63 6d | 64 2e 73 63 5f 6d 61 78 |ucmd.scm|d.sc_max|
|00001d90| 20 3d 20 6d 61 78 3b 0d | 20 20 20 20 68 65 61 64 | = max;.| head|
|00001da0| 2d 3e 75 63 6d 64 2e 73 | 63 6d 64 2e 73 63 5f 6e |->ucmd.s|cmd.sc_n|
|00001db0| 65 78 74 20 3d 20 6c 6f | 63 3b 0d 7d 0d 0d 73 74 |ext = lo|c;.}..st|
|00001dc0| 61 74 69 63 20 76 6f 69 | 64 0d 6d 61 6b 65 5f 6e |atic voi|d.make_n|
|00001dd0| 73 77 69 74 63 68 28 68 | 65 61 64 2c 63 6f 75 6e |switch(h|ead,coun|
|00001de0| 74 29 0d 72 65 67 69 73 | 74 65 72 20 43 4d 44 20 |t).regis|ter CMD |
|00001df0| 2a 68 65 61 64 3b 0d 69 | 6e 74 20 63 6f 75 6e 74 |*head;.i|nt count|
|00001e00| 3b 0d 7b 0d 20 20 20 20 | 72 65 67 69 73 74 65 72 |;.{. |register|
|00001e10| 20 43 4d 44 20 2a 63 75 | 72 20 3d 20 68 65 61 64 | CMD *cu|r = head|
|00001e20| 3b 0d 20 20 20 20 72 65 | 67 69 73 74 65 72 20 43 |;. re|gister C|
|00001e30| 4d 44 20 2a 2a 6c 6f 63 | 3b 0d 20 20 20 20 72 65 |MD **loc|;. re|
|00001e40| 67 69 73 74 65 72 20 69 | 6e 74 20 69 3b 0d 20 20 |gister i|nt i;. |
|00001e50| 20 20 72 65 67 69 73 74 | 65 72 20 69 6e 74 20 6d | regist|er int m|
|00001e60| 69 6e 20 3d 20 33 32 37 | 36 37 3b 0d 20 20 20 20 |in = 327|67;. |
|00001e70| 72 65 67 69 73 74 65 72 | 20 69 6e 74 20 6d 61 78 |register| int max|
|00001e80| 20 3d 20 2d 33 32 37 36 | 38 3b 0d 20 20 20 20 69 | = -3276|8;. i|
|00001e90| 6e 74 20 6f 72 69 67 63 | 6f 75 6e 74 20 3d 20 63 |nt origc|ount = c|
|00001ea0| 6f 75 6e 74 3b 0d 20 20 | 20 20 64 6f 75 62 6c 65 |ount;. | double|
|00001eb0| 20 76 61 6c 75 65 3b 09 | 09 2f 2a 20 6f 72 20 79 | value;.|./* or y|
|00001ec0| 6f 75 72 20 6d 6f 6e 65 | 79 20 62 61 63 6b 21 20 |our mone|y back! |
|00001ed0| 2a 2f 0d 20 20 20 20 73 | 68 6f 72 74 20 63 68 61 |*/. s|hort cha|
|00001ee0| 6e 67 65 64 3b 09 09 2f | 2a 20 73 6f 20 74 72 69 |nged;../|* so tri|
|00001ef0| 70 6c 65 20 79 6f 75 72 | 20 6d 6f 6e 65 79 20 62 |ple your| money b|
|00001f00| 61 63 6b 21 20 2a 2f 0d | 0d 20 20 20 20 77 68 69 |ack! */.|. whi|
|00001f10| 6c 65 20 28 63 6f 75 6e | 74 2d 2d 29 20 7b 0d 09 |le (coun|t--) {..|
|00001f20| 69 20 3d 20 28 69 6e 74 | 29 73 74 72 5f 67 6e 75 |i = (int|)str_gnu|
|00001f30| 6d 28 63 75 72 2d 3e 63 | 5f 73 68 6f 72 74 29 3b |m(cur->c|_short);|
|00001f40| 0d 09 76 61 6c 75 65 20 | 3d 20 28 64 6f 75 62 6c |..value |= (doubl|
|00001f50| 65 29 69 3b 0d 09 69 66 | 20 28 76 61 6c 75 65 20 |e)i;..if| (value |
|00001f60| 21 3d 20 63 75 72 2d 3e | 63 5f 73 68 6f 72 74 2d |!= cur->|c_short-|
|00001f70| 3e 73 74 72 5f 75 2e 73 | 74 72 5f 6e 76 61 6c 29 |>str_u.s|tr_nval)|
|00001f80| 0d 09 20 20 20 20 72 65 | 74 75 72 6e 3b 09 09 2f |.. re|turn;../|
|00001f90| 2a 20 66 72 61 63 74 69 | 6f 6e 61 6c 20 76 61 6c |* fracti|onal val|
|00001fa0| 75 65 73 2d 2d 6a 75 73 | 74 20 66 6f 72 67 65 74 |ues--jus|t forget|
|00001fb0| 20 69 74 20 2a 2f 0d 09 | 63 68 61 6e 67 65 64 20 | it */..|changed |
|00001fc0| 3d 20 69 3b 0d 09 69 66 | 20 28 63 68 61 6e 67 65 |= i;..if| (change|
|00001fd0| 64 20 21 3d 20 69 29 0d | 09 20 20 20 20 72 65 74 |d != i).|. ret|
|00001fe0| 75 72 6e 3b 09 09 2f 2a | 20 74 6f 6f 20 62 69 67 |urn;../*| too big|
|00001ff0| 20 66 6f 72 20 61 20 73 | 68 6f 72 74 20 2a 2f 0d | for a s|hort */.|
|00002000| 09 69 66 20 28 63 75 72 | 2d 3e 63 5f 73 6c 65 6e |.if (cur|->c_slen|
|00002010| 20 3d 3d 20 4f 5f 4c 45 | 29 0d 09 20 20 20 20 69 | == O_LE|).. i|
|00002020| 2b 2b 3b 0d 09 65 6c 73 | 65 20 69 66 20 28 63 75 |++;..els|e if (cu|
|00002030| 72 2d 3e 63 5f 73 6c 65 | 6e 20 3d 3d 20 4f 5f 47 |r->c_sle|n == O_G|
|00002040| 45 29 09 2f 2a 20 77 65 | 20 6f 6e 6c 79 20 64 6f |E)./* we| only do|
|00002050| 20 3c 20 6f 72 20 3e 20 | 68 65 72 65 20 2a 2f 0d | < or > |here */.|
|00002060| 09 20 20 20 20 69 2d 2d | 3b 0d 09 69 66 20 28 69 |. i--|;..if (i|
|00002070| 20 3c 20 6d 69 6e 29 0d | 09 20 20 20 20 6d 69 6e | < min).|. min|
|00002080| 20 3d 20 69 3b 0d 09 69 | 66 20 28 69 20 3e 20 6d | = i;..i|f (i > m|
|00002090| 61 78 29 0d 09 20 20 20 | 20 6d 61 78 20 3d 20 69 |ax).. | max = i|
|000020a0| 3b 0d 09 63 75 72 20 3d | 20 63 75 72 2d 3e 63 5f |;..cur =| cur->c_|
|000020b0| 6e 65 78 74 3b 0d 20 20 | 20 20 7d 0d 20 20 20 20 |next;. | }. |
|000020c0| 63 6f 75 6e 74 20 3d 20 | 6f 72 69 67 63 6f 75 6e |count = |origcoun|
|000020d0| 74 3b 0d 20 20 20 20 69 | 66 20 28 6d 61 78 20 2d |t;. i|f (max -|
|000020e0| 20 6d 69 6e 20 3e 20 63 | 6f 75 6e 74 20 2a 20 32 | min > c|ount * 2|
|000020f0| 20 2b 20 31 30 29 09 09 | 2f 2a 20 74 6f 6f 20 73 | + 10)..|/* too s|
|00002100| 70 61 72 73 65 3f 20 2a | 2f 0d 09 72 65 74 75 72 |parse? *|/..retur|
|00002110| 6e 3b 0d 0d 20 20 20 20 | 2f 2a 20 6e 6f 77 20 6d |n;.. |/* now m|
|00002120| 61 6b 65 20 61 20 6e 65 | 77 20 68 65 61 64 20 69 |ake a ne|w head i|
|00002130| 6e 20 74 68 65 20 65 78 | 61 63 74 20 73 61 6d 65 |n the ex|act same|
|00002140| 20 73 70 6f 74 20 2a 2f | 0d 20 20 20 20 4e 65 77 | spot */|. New|
|00002150| 28 31 30 34 2c 63 75 72 | 2c 20 31 2c 20 43 4d 44 |(104,cur|, 1, CMD|
|00002160| 29 3b 0d 20 20 20 20 53 | 74 72 75 63 74 43 6f 70 |);. S|tructCop|
|00002170| 79 28 68 65 61 64 2c 63 | 75 72 2c 43 4d 44 29 3b |y(head,c|ur,CMD);|
|00002180| 0d 20 20 20 20 5a 65 72 | 6f 28 68 65 61 64 2c 31 |. Zer|o(head,1|
|00002190| 2c 43 4d 44 29 3b 0d 20 | 20 20 20 68 65 61 64 2d |,CMD);. | head-|
|000021a0| 3e 63 5f 68 65 61 64 20 | 3d 20 63 75 72 2d 3e 63 |>c_head |= cur->c|
|000021b0| 5f 68 65 61 64 3b 0d 20 | 20 20 20 68 65 61 64 2d |_head;. | head-|
|000021c0| 3e 63 5f 74 79 70 65 20 | 3d 20 43 5f 4e 53 57 49 |>c_type |= C_NSWI|
|000021d0| 54 43 48 3b 0d 20 20 20 | 20 68 65 61 64 2d 3e 63 |TCH;. | head->c|
|000021e0| 5f 6e 65 78 74 20 3d 20 | 63 75 72 3b 09 09 2f 2a |_next = |cur;../*|
|000021f0| 20 69 6e 73 65 72 74 20 | 6e 65 77 20 63 6d 64 20 | insert |new cmd |
|00002200| 61 74 20 66 72 6f 6e 74 | 20 6f 66 20 6c 69 73 74 |at front| of list|
|00002210| 20 2a 2f 0d 20 20 20 20 | 68 65 61 64 2d 3e 63 5f | */. |head->c_|
|00002220| 73 74 61 62 20 3d 20 63 | 75 72 2d 3e 63 5f 73 74 |stab = c|ur->c_st|
|00002230| 61 62 3b 0d 0d 20 20 20 | 20 4e 65 77 7a 28 31 30 |ab;.. | Newz(10|
|00002240| 35 2c 6c 6f 63 2c 20 6d | 61 78 20 2d 20 6d 69 6e |5,loc, m|ax - min|
|00002250| 20 2b 20 33 2c 20 43 4d | 44 2a 29 3b 0d 20 20 20 | + 3, CM|D*);. |
|00002260| 20 6c 6f 63 2b 2b 3b 0d | 20 20 20 20 6d 61 78 20 | loc++;.| max |
|00002270| 2d 3d 20 6d 69 6e 3b 0d | 20 20 20 20 6d 61 78 2b |-= min;.| max+|
|00002280| 2b 3b 0d 20 20 20 20 77 | 68 69 6c 65 20 28 63 6f |+;. w|hile (co|
|00002290| 75 6e 74 2d 2d 29 20 7b | 0d 09 69 20 3d 20 28 69 |unt--) {|..i = (i|
|000022a0| 6e 74 29 73 74 72 5f 67 | 6e 75 6d 28 63 75 72 2d |nt)str_g|num(cur-|
|000022b0| 3e 63 5f 73 68 6f 72 74 | 29 3b 0d 09 69 20 2d 3d |>c_short|);..i -=|
|000022c0| 20 6d 69 6e 3b 0d 09 73 | 77 69 74 63 68 28 63 75 | min;..s|witch(cu|
|000022d0| 72 2d 3e 63 5f 73 6c 65 | 6e 29 20 7b 0d 09 63 61 |r->c_sle|n) {..ca|
|000022e0| 73 65 20 4f 5f 4c 45 3a | 0d 09 20 20 20 20 69 2b |se O_LE:|.. i+|
|000022f0| 2b 3b 0d 09 63 61 73 65 | 20 4f 5f 4c 54 3a 0d 09 |+;..case| O_LT:..|
|00002300| 20 20 20 20 66 6f 72 20 | 28 69 2d 2d 3b 20 69 20 | for |(i--; i |
|00002310| 3e 3d 20 2d 31 3b 20 69 | 2d 2d 29 0d 09 09 69 66 |>= -1; i|--)...if|
|00002320| 20 28 21 6c 6f 63 5b 69 | 5d 29 0d 09 09 20 20 20 | (!loc[i|])... |
|00002330| 20 6c 6f 63 5b 69 5d 20 | 3d 20 63 75 72 3b 0d 09 | loc[i] |= cur;..|
|00002340| 20 20 20 20 62 72 65 61 | 6b 3b 0d 09 63 61 73 65 | brea|k;..case|
|00002350| 20 4f 5f 47 45 3a 0d 09 | 20 20 20 20 69 2d 2d 3b | O_GE:..| i--;|
|00002360| 0d 09 63 61 73 65 20 4f | 5f 47 54 3a 0d 09 20 20 |..case O|_GT:.. |
|00002370| 20 20 66 6f 72 20 28 69 | 2b 2b 3b 20 69 20 3c 3d | for (i|++; i <=|
|00002380| 20 6d 61 78 3b 20 69 2b | 2b 29 0d 09 09 69 66 20 | max; i+|+)...if |
|00002390| 28 21 6c 6f 63 5b 69 5d | 29 0d 09 09 20 20 20 20 |(!loc[i]|)... |
|000023a0| 6c 6f 63 5b 69 5d 20 3d | 20 63 75 72 3b 0d 09 20 |loc[i] =| cur;.. |
|000023b0| 20 20 20 62 72 65 61 6b | 3b 0d 09 63 61 73 65 20 | break|;..case |
|000023c0| 4f 5f 45 51 3a 0d 09 20 | 20 20 20 69 66 20 28 21 |O_EQ:.. | if (!|
|000023d0| 6c 6f 63 5b 69 5d 29 0d | 09 09 6c 6f 63 5b 69 5d |loc[i]).|..loc[i]|
|000023e0| 20 3d 20 63 75 72 3b 0d | 09 20 20 20 20 62 72 65 | = cur;.|. bre|
|000023f0| 61 6b 3b 0d 09 7d 0d 09 | 63 75 72 20 3d 20 63 75 |ak;..}..|cur = cu|
|00002400| 72 2d 3e 63 5f 6e 65 78 | 74 3b 0d 20 20 20 20 7d |r->c_nex|t;. }|
|00002410| 0d 20 20 20 20 6c 6f 63 | 2d 2d 3b 0d 20 20 20 20 |. loc|--;. |
|00002420| 6d 69 6e 2d 2d 3b 0d 20 | 20 20 20 6d 61 78 2b 2b |min--;. | max++|
|00002430| 3b 0d 20 20 20 20 66 6f | 72 20 28 69 20 3d 20 30 |;. fo|r (i = 0|
|00002440| 3b 20 69 20 3c 3d 20 6d | 61 78 3b 20 69 2b 2b 29 |; i <= m|ax; i++)|
|00002450| 0d 09 69 66 20 28 21 6c | 6f 63 5b 69 5d 29 0d 09 |..if (!l|oc[i])..|
|00002460| 20 20 20 20 6c 6f 63 5b | 69 5d 20 3d 20 63 75 72 | loc[|i] = cur|
|00002470| 3b 0d 20 20 20 20 68 65 | 61 64 2d 3e 75 63 6d 64 |;. he|ad->ucmd|
|00002480| 2e 73 63 6d 64 2e 73 63 | 5f 6f 66 66 73 65 74 20 |.scmd.sc|_offset |
|00002490| 3d 20 6d 69 6e 3b 0d 20 | 20 20 20 68 65 61 64 2d |= min;. | head-|
|000024a0| 3e 75 63 6d 64 2e 73 63 | 6d 64 2e 73 63 5f 6d 61 |>ucmd.sc|md.sc_ma|
|000024b0| 78 20 3d 20 6d 61 78 3b | 0d 20 20 20 20 68 65 61 |x = max;|. hea|
|000024c0| 64 2d 3e 75 63 6d 64 2e | 73 63 6d 64 2e 73 63 5f |d->ucmd.|scmd.sc_|
|000024d0| 6e 65 78 74 20 3d 20 6c | 6f 63 3b 0d 7d 0d 0d 43 |next = l|oc;.}..C|
|000024e0| 4d 44 20 2a 0d 61 70 70 | 65 6e 64 5f 6c 69 6e 65 |MD *.app|end_line|
|000024f0| 28 68 65 61 64 2c 74 61 | 69 6c 29 0d 72 65 67 69 |(head,ta|il).regi|
|00002500| 73 74 65 72 20 43 4d 44 | 20 2a 68 65 61 64 3b 0d |ster CMD| *head;.|
|00002510| 72 65 67 69 73 74 65 72 | 20 43 4d 44 20 2a 74 61 |register| CMD *ta|
|00002520| 69 6c 3b 0d 7b 0d 20 20 | 20 20 69 66 20 28 74 61 |il;.{. | if (ta|
|00002530| 69 6c 20 3d 3d 20 4e 75 | 6c 6c 63 6d 64 29 0d 09 |il == Nu|llcmd)..|
|00002540| 72 65 74 75 72 6e 20 68 | 65 61 64 3b 0d 20 20 20 |return h|ead;. |
|00002550| 20 69 66 20 28 21 74 61 | 69 6c 2d 3e 63 5f 68 65 | if (!ta|il->c_he|
|00002560| 61 64 29 09 09 09 2f 2a | 20 6d 61 6b 65 20 73 75 |ad).../*| make su|
|00002570| 72 65 20 74 61 69 6c 20 | 69 73 20 77 65 6c 6c 20 |re tail |is well |
|00002580| 66 6f 72 6d 65 64 20 2a | 2f 0d 09 74 61 69 6c 2d |formed *|/..tail-|
|00002590| 3e 63 5f 68 65 61 64 20 | 3d 20 74 61 69 6c 3b 0d |>c_head |= tail;.|
|000025a0| 20 20 20 20 69 66 20 28 | 68 65 61 64 20 21 3d 20 | if (|head != |
|000025b0| 4e 75 6c 6c 63 6d 64 29 | 20 7b 0d 09 74 61 69 6c |Nullcmd)| {..tail|
|000025c0| 20 3d 20 74 61 69 6c 2d | 3e 63 5f 68 65 61 64 3b | = tail-|>c_head;|
|000025d0| 09 09 2f 2a 20 67 65 74 | 20 74 6f 20 73 74 61 72 |../* get| to star|
|000025e0| 74 20 6f 66 20 74 61 69 | 6c 20 6c 69 73 74 20 2a |t of tai|l list *|
|000025f0| 2f 0d 09 69 66 20 28 21 | 68 65 61 64 2d 3e 63 5f |/..if (!|head->c_|
|00002600| 68 65 61 64 29 0d 09 20 | 20 20 20 68 65 61 64 2d |head).. | head-|
|00002610| 3e 63 5f 68 65 61 64 20 | 3d 20 68 65 61 64 3b 09 |>c_head |= head;.|
|00002620| 2f 2a 20 73 74 61 72 74 | 20 61 20 6e 65 77 20 68 |/* start| a new h|
|00002630| 65 61 64 20 6c 69 73 74 | 20 2a 2f 0d 09 77 68 69 |ead list| */..whi|
|00002640| 6c 65 20 28 68 65 61 64 | 2d 3e 63 5f 6e 65 78 74 |le (head|->c_next|
|00002650| 29 20 7b 0d 09 20 20 20 | 20 68 65 61 64 2d 3e 63 |) {.. | head->c|
|00002660| 5f 6e 65 78 74 2d 3e 63 | 5f 68 65 61 64 20 3d 20 |_next->c|_head = |
|00002670| 68 65 61 64 2d 3e 63 5f | 68 65 61 64 3b 0d 09 20 |head->c_|head;.. |
|00002680| 20 20 20 68 65 61 64 20 | 3d 20 68 65 61 64 2d 3e | head |= head->|
|00002690| 63 5f 6e 65 78 74 3b 09 | 2f 2a 20 67 65 74 20 74 |c_next;.|/* get t|
|000026a0| 6f 20 65 6e 64 20 6f 66 | 20 68 65 61 64 20 6c 69 |o end of| head li|
|000026b0| 73 74 20 2a 2f 0d 09 7d | 0d 09 68 65 61 64 2d 3e |st */..}|..head->|
|000026c0| 63 5f 6e 65 78 74 20 3d | 20 74 61 69 6c 3b 09 09 |c_next =| tail;..|
|000026d0| 2f 2a 20 6c 69 6e 6b 20 | 74 6f 20 65 6e 64 20 6f |/* link |to end o|
|000026e0| 66 20 6f 6c 64 20 6c 69 | 73 74 20 2a 2f 0d 09 74 |f old li|st */..t|
|000026f0| 61 69 6c 2d 3e 63 5f 68 | 65 61 64 20 3d 20 68 65 |ail->c_h|ead = he|
|00002700| 61 64 2d 3e 63 5f 68 65 | 61 64 3b 09 2f 2a 20 70 |ad->c_he|ad;./* p|
|00002710| 72 6f 70 61 67 61 74 65 | 20 68 65 61 64 20 70 6f |ropagate| head po|
|00002720| 69 6e 74 65 72 20 2a 2f | 0d 20 20 20 20 7d 0d 20 |inter */|. }. |
|00002730| 20 20 20 77 68 69 6c 65 | 20 28 74 61 69 6c 2d 3e | while| (tail->|
|00002740| 63 5f 6e 65 78 74 29 20 | 7b 0d 09 74 61 69 6c 2d |c_next) |{..tail-|
|00002750| 3e 63 5f 6e 65 78 74 2d | 3e 63 5f 68 65 61 64 20 |>c_next-|>c_head |
|00002760| 3d 20 74 61 69 6c 2d 3e | 63 5f 68 65 61 64 3b 0d |= tail->|c_head;.|
|00002770| 09 74 61 69 6c 20 3d 20 | 74 61 69 6c 2d 3e 63 5f |.tail = |tail->c_|
|00002780| 6e 65 78 74 3b 0d 20 20 | 20 20 7d 0d 20 20 20 20 |next;. | }. |
|00002790| 72 65 74 75 72 6e 20 74 | 61 69 6c 3b 0d 7d 0d 0d |return t|ail;.}..|
|000027a0| 43 4d 44 20 2a 0d 64 6f | 64 62 28 63 75 72 29 0d |CMD *.do|db(cur).|
|000027b0| 43 4d 44 20 2a 63 75 72 | 3b 0d 7b 0d 20 20 20 20 |CMD *cur|;.{. |
|000027c0| 72 65 67 69 73 74 65 72 | 20 43 4d 44 20 2a 63 6d |register| CMD *cm|
|000027d0| 64 3b 0d 20 20 20 20 72 | 65 67 69 73 74 65 72 20 |d;. r|egister |
|000027e0| 43 4d 44 20 2a 68 65 61 | 64 20 3d 20 63 75 72 2d |CMD *hea|d = cur-|
|000027f0| 3e 63 5f 68 65 61 64 3b | 0d 20 20 20 20 53 54 52 |>c_head;|. STR|
|00002800| 20 2a 73 74 72 3b 0d 0d | 20 20 20 20 69 66 20 28 | *str;..| if (|
|00002810| 21 68 65 61 64 29 0d 09 | 68 65 61 64 20 3d 20 63 |!head)..|head = c|
|00002820| 75 72 3b 0d 20 20 20 20 | 69 66 20 28 21 68 65 61 |ur;. |if (!hea|
|00002830| 64 2d 3e 63 5f 6c 69 6e | 65 29 0d 09 72 65 74 75 |d->c_lin|e)..retu|
|00002840| 72 6e 20 63 75 72 3b 0d | 20 20 20 20 73 74 72 20 |rn cur;.| str |
|00002850| 3d 20 61 66 65 74 63 68 | 28 73 74 61 62 5f 78 61 |= afetch|(stab_xa|
|00002860| 72 72 61 79 28 63 75 72 | 63 6d 64 2d 3e 63 5f 66 |rray(cur|cmd->c_f|
|00002870| 69 6c 65 73 74 61 62 29 | 2c 28 69 6e 74 29 68 65 |ilestab)|,(int)he|
|00002880| 61 64 2d 3e 63 5f 6c 69 | 6e 65 2c 46 41 4c 53 45 |ad->c_li|ne,FALSE|
|00002890| 29 3b 0d 20 20 20 20 69 | 66 20 28 73 74 72 20 3d |);. i|f (str =|
|000028a0| 3d 20 26 73 74 72 5f 75 | 6e 64 65 66 20 7c 7c 20 |= &str_u|ndef || |
|000028b0| 73 74 72 2d 3e 73 74 72 | 5f 6e 6f 6b 29 0d 09 72 |str->str|_nok)..r|
|000028c0| 65 74 75 72 6e 20 63 75 | 72 3b 0d 20 20 20 20 73 |eturn cu|r;. s|
|000028d0| 74 72 2d 3e 73 74 72 5f | 75 2e 73 74 72 5f 6e 76 |tr->str_|u.str_nv|
|000028e0| 61 6c 20 3d 20 28 64 6f | 75 62 6c 65 29 68 65 61 |al = (do|uble)hea|
|000028f0| 64 2d 3e 63 5f 6c 69 6e | 65 3b 0d 20 20 20 20 73 |d->c_lin|e;. s|
|00002900| 74 72 2d 3e 73 74 72 5f | 6e 6f 6b 20 3d 20 31 3b |tr->str_|nok = 1;|
|00002910| 0d 20 20 20 20 4e 65 77 | 7a 28 31 30 36 2c 63 6d |. New|z(106,cm|
|00002920| 64 2c 31 2c 43 4d 44 29 | 3b 0d 20 20 20 20 73 74 |d,1,CMD)|;. st|
|00002930| 72 5f 6d 61 67 69 63 28 | 73 74 72 2c 20 63 75 72 |r_magic(|str, cur|
|00002940| 63 6d 64 2d 3e 63 5f 66 | 69 6c 65 73 74 61 62 2c |cmd->c_f|ilestab,|
|00002950| 20 30 2c 20 4e 75 6c 6c | 63 68 2c 20 30 29 3b 0d | 0, Null|ch, 0);.|
|00002960| 20 20 20 20 73 74 72 2d | 3e 73 74 72 5f 6d 61 67 | str-|>str_mag|
|00002970| 69 63 2d 3e 73 74 72 5f | 75 2e 73 74 72 5f 63 6d |ic->str_|u.str_cm|
|00002980| 64 20 3d 20 63 6d 64 3b | 0d 20 20 20 20 63 6d 64 |d = cmd;|. cmd|
|00002990| 2d 3e 63 5f 74 79 70 65 | 20 3d 20 43 5f 45 58 50 |->c_type| = C_EXP|
|000029a0| 52 3b 0d 20 20 20 20 63 | 6d 64 2d 3e 75 63 6d 64 |R;. c|md->ucmd|
|000029b0| 2e 61 63 6d 64 2e 61 63 | 5f 73 74 61 62 20 3d 20 |.acmd.ac|_stab = |
|000029c0| 4e 75 6c 6c 73 74 61 62 | 3b 0d 20 20 20 20 63 6d |Nullstab|;. cm|
|000029d0| 64 2d 3e 75 63 6d 64 2e | 61 63 6d 64 2e 61 63 5f |d->ucmd.|acmd.ac_|
|000029e0| 65 78 70 72 20 3d 20 4e | 75 6c 6c 61 72 67 3b 0d |expr = N|ullarg;.|
|000029f0| 20 20 20 20 63 6d 64 2d | 3e 63 5f 65 78 70 72 20 | cmd-|>c_expr |
|00002a00| 3d 20 6d 61 6b 65 5f 6f | 70 28 4f 5f 53 55 42 52 |= make_o|p(O_SUBR|
|00002a10| 2c 20 32 2c 0d 09 73 74 | 61 62 32 61 72 67 28 41 |, 2,..st|ab2arg(A|
|00002a20| 5f 57 4f 52 44 2c 44 42 | 73 74 61 62 29 2c 0d 09 |_WORD,DB|stab),..|
|00002a30| 4e 75 6c 6c 61 72 67 2c | 0d 09 4e 75 6c 6c 61 72 |Nullarg,|..Nullar|
|00002a40| 67 29 3b 0d 20 20 20 20 | 2f 2a 53 55 50 50 52 45 |g);. |/*SUPPRE|
|00002a50| 53 53 20 35 33 2a 2f 0d | 20 20 20 20 63 6d 64 2d |SS 53*/.| cmd-|
|00002a60| 3e 63 5f 66 6c 61 67 73 | 20 7c 3d 20 43 46 5f 43 |>c_flags| |= CF_C|
|00002a70| 4f 4e 44 7c 43 46 5f 44 | 42 53 55 42 7c 43 46 54 |OND|CF_D|BSUB|CFT|
|00002a80| 5f 44 30 3b 0d 20 20 20 | 20 63 6d 64 2d 3e 63 5f |_D0;. | cmd->c_|
|00002a90| 6c 69 6e 65 20 3d 20 68 | 65 61 64 2d 3e 63 5f 6c |line = h|ead->c_l|
|00002aa0| 69 6e 65 3b 0d 20 20 20 | 20 63 6d 64 2d 3e 63 5f |ine;. | cmd->c_|
|00002ab0| 6c 61 62 65 6c 20 3d 20 | 68 65 61 64 2d 3e 63 5f |label = |head->c_|
|00002ac0| 6c 61 62 65 6c 3b 0d 20 | 20 20 20 63 6d 64 2d 3e |label;. | cmd->|
|00002ad0| 63 5f 66 69 6c 65 73 74 | 61 62 20 3d 20 63 75 72 |c_filest|ab = cur|
|00002ae0| 63 6d 64 2d 3e 63 5f 66 | 69 6c 65 73 74 61 62 3b |cmd->c_f|ilestab;|
|00002af0| 0d 20 20 20 20 63 6d 64 | 2d 3e 63 5f 73 74 61 73 |. cmd|->c_stas|
|00002b00| 68 20 3d 20 63 75 72 73 | 74 61 73 68 3b 0d 20 20 |h = curs|tash;. |
|00002b10| 20 20 72 65 74 75 72 6e | 20 61 70 70 65 6e 64 5f | return| append_|
|00002b20| 6c 69 6e 65 28 63 6d 64 | 2c 20 63 75 72 29 3b 0d |line(cmd|, cur);.|
|00002b30| 7d 0d 0d 43 4d 44 20 2a | 0d 6d 61 6b 65 5f 61 63 |}..CMD *|.make_ac|
|00002b40| 6d 64 28 74 79 70 65 2c | 73 74 61 62 2c 63 6f 6e |md(type,|stab,con|
|00002b50| 64 2c 61 72 67 29 0d 69 | 6e 74 20 74 79 70 65 3b |d,arg).i|nt type;|
|00002b60| 0d 53 54 41 42 20 2a 73 | 74 61 62 3b 0d 41 52 47 |.STAB *s|tab;.ARG|
|00002b70| 20 2a 63 6f 6e 64 3b 0d | 41 52 47 20 2a 61 72 67 | *cond;.|ARG *arg|
|00002b80| 3b 0d 7b 0d 20 20 20 20 | 72 65 67 69 73 74 65 72 |;.{. |register|
|00002b90| 20 43 4d 44 20 2a 63 6d | 64 3b 0d 0d 20 20 20 20 | CMD *cm|d;.. |
|00002ba0| 4e 65 77 7a 28 31 30 37 | 2c 63 6d 64 2c 31 2c 43 |Newz(107|,cmd,1,C|
|00002bb0| 4d 44 29 3b 0d 20 20 20 | 20 63 6d 64 2d 3e 63 5f |MD);. | cmd->c_|
|00002bc0| 74 79 70 65 20 3d 20 74 | 79 70 65 3b 0d 20 20 20 |type = t|ype;. |
|00002bd0| 20 63 6d 64 2d 3e 75 63 | 6d 64 2e 61 63 6d 64 2e | cmd->uc|md.acmd.|
|00002be0| 61 63 5f 73 74 61 62 20 | 3d 20 73 74 61 62 3b 0d |ac_stab |= stab;.|
|00002bf0| 20 20 20 20 63 6d 64 2d | 3e 75 63 6d 64 2e 61 63 | cmd-|>ucmd.ac|
|00002c00| 6d 64 2e 61 63 5f 65 78 | 70 72 20 3d 20 61 72 67 |md.ac_ex|pr = arg|
|00002c10| 3b 0d 20 20 20 20 63 6d | 64 2d 3e 63 5f 65 78 70 |;. cm|d->c_exp|
|00002c20| 72 20 3d 20 63 6f 6e 64 | 3b 0d 20 20 20 20 69 66 |r = cond|;. if|
|00002c30| 20 28 63 6f 6e 64 29 0d | 09 63 6d 64 2d 3e 63 5f | (cond).|.cmd->c_|
|00002c40| 66 6c 61 67 73 20 7c 3d | 20 43 46 5f 43 4f 4e 44 |flags |=| CF_COND|
|00002c50| 3b 0d 20 20 20 20 69 66 | 20 28 63 6d 64 6c 69 6e |;. if| (cmdlin|
|00002c60| 65 20 3d 3d 20 4e 4f 4c | 49 4e 45 29 0d 09 63 6d |e == NOL|INE)..cm|
|00002c70| 64 2d 3e 63 5f 6c 69 6e | 65 20 3d 20 63 75 72 63 |d->c_lin|e = curc|
|00002c80| 6d 64 2d 3e 63 5f 6c 69 | 6e 65 3b 0d 20 20 20 20 |md->c_li|ne;. |
|00002c90| 65 6c 73 65 20 7b 0d 09 | 63 6d 64 2d 3e 63 5f 6c |else {..|cmd->c_l|
|00002ca0| 69 6e 65 20 3d 20 63 6d | 64 6c 69 6e 65 3b 0d 09 |ine = cm|dline;..|
|00002cb0| 63 6d 64 6c 69 6e 65 20 | 3d 20 4e 4f 4c 49 4e 45 |cmdline |= NOLINE|
|00002cc0| 3b 0d 20 20 20 20 7d 0d | 20 20 20 20 63 6d 64 2d |;. }.| cmd-|
|00002cd0| 3e 63 5f 66 69 6c 65 73 | 74 61 62 20 3d 20 63 75 |>c_files|tab = cu|
|00002ce0| 72 63 6d 64 2d 3e 63 5f | 66 69 6c 65 73 74 61 62 |rcmd->c_|filestab|
|00002cf0| 3b 0d 20 20 20 20 63 6d | 64 2d 3e 63 5f 73 74 61 |;. cm|d->c_sta|
|00002d00| 73 68 20 3d 20 63 75 72 | 73 74 61 73 68 3b 0d 20 |sh = cur|stash;. |
|00002d10| 20 20 20 69 66 20 28 70 | 65 72 6c 64 62 29 0d 09 | if (p|erldb)..|
|00002d20| 63 6d 64 20 3d 20 64 6f | 64 62 28 63 6d 64 29 3b |cmd = do|db(cmd);|
|00002d30| 0d 20 20 20 20 72 65 74 | 75 72 6e 20 63 6d 64 3b |. ret|urn cmd;|
|00002d40| 0d 7d 0d 0d 43 4d 44 20 | 2a 0d 6d 61 6b 65 5f 63 |.}..CMD |*.make_c|
|00002d50| 63 6d 64 28 74 79 70 65 | 2c 64 65 62 75 67 67 61 |cmd(type|,debugga|
|00002d60| 62 6c 65 2c 61 72 67 2c | 63 62 6c 6f 63 6b 29 0d |ble,arg,|cblock).|
|00002d70| 69 6e 74 20 74 79 70 65 | 3b 0d 69 6e 74 20 64 65 |int type|;.int de|
|00002d80| 62 75 67 67 61 62 6c 65 | 3b 0d 41 52 47 20 2a 61 |buggable|;.ARG *a|
|00002d90| 72 67 3b 0d 73 74 72 75 | 63 74 20 63 6f 6d 70 63 |rg;.stru|ct compc|
|00002da0| 6d 64 20 63 62 6c 6f 63 | 6b 3b 0d 7b 0d 20 20 20 |md cbloc|k;.{. |
|00002db0| 20 72 65 67 69 73 74 65 | 72 20 43 4d 44 20 2a 63 | registe|r CMD *c|
|00002dc0| 6d 64 3b 0d 0d 20 20 20 | 20 4e 65 77 7a 28 31 30 |md;.. | Newz(10|
|00002dd0| 38 2c 63 6d 64 2c 20 31 | 2c 20 43 4d 44 29 3b 0d |8,cmd, 1|, CMD);.|
|00002de0| 20 20 20 20 63 6d 64 2d | 3e 63 5f 74 79 70 65 20 | cmd-|>c_type |
|00002df0| 3d 20 74 79 70 65 3b 0d | 20 20 20 20 63 6d 64 2d |= type;.| cmd-|
|00002e00| 3e 63 5f 65 78 70 72 20 | 3d 20 61 72 67 3b 0d 20 |>c_expr |= arg;. |
|00002e10| 20 20 20 63 6d 64 2d 3e | 75 63 6d 64 2e 63 63 6d | cmd->|ucmd.ccm|
|00002e20| 64 2e 63 63 5f 74 72 75 | 65 20 3d 20 63 62 6c 6f |d.cc_tru|e = cblo|
|00002e30| 63 6b 2e 63 6f 6d 70 5f | 74 72 75 65 3b 0d 20 20 |ck.comp_|true;. |
|00002e40| 20 20 63 6d 64 2d 3e 75 | 63 6d 64 2e 63 63 6d 64 | cmd->u|cmd.ccmd|
|00002e50| 2e 63 63 5f 61 6c 74 20 | 3d 20 63 62 6c 6f 63 6b |.cc_alt |= cblock|
|00002e60| 2e 63 6f 6d 70 5f 61 6c | 74 3b 0d 20 20 20 20 69 |.comp_al|t;. i|
|00002e70| 66 20 28 61 72 67 29 0d | 09 63 6d 64 2d 3e 63 5f |f (arg).|.cmd->c_|
|00002e80| 66 6c 61 67 73 20 7c 3d | 20 43 46 5f 43 4f 4e 44 |flags |=| CF_COND|
|00002e90| 3b 0d 20 20 20 20 69 66 | 20 28 63 6d 64 6c 69 6e |;. if| (cmdlin|
|00002ea0| 65 20 3d 3d 20 4e 4f 4c | 49 4e 45 29 0d 09 63 6d |e == NOL|INE)..cm|
|00002eb0| 64 2d 3e 63 5f 6c 69 6e | 65 20 3d 20 63 75 72 63 |d->c_lin|e = curc|
|00002ec0| 6d 64 2d 3e 63 5f 6c 69 | 6e 65 3b 0d 20 20 20 20 |md->c_li|ne;. |
|00002ed0| 65 6c 73 65 20 7b 0d 09 | 63 6d 64 2d 3e 63 5f 6c |else {..|cmd->c_l|
|00002ee0| 69 6e 65 20 3d 20 63 6d | 64 6c 69 6e 65 3b 0d 09 |ine = cm|dline;..|
|00002ef0| 63 6d 64 6c 69 6e 65 20 | 3d 20 4e 4f 4c 49 4e 45 |cmdline |= NOLINE|
|00002f00| 3b 0d 20 20 20 20 7d 0d | 20 20 20 20 63 6d 64 2d |;. }.| cmd-|
|00002f10| 3e 63 5f 66 69 6c 65 73 | 74 61 62 20 3d 20 63 75 |>c_files|tab = cu|
|00002f20| 72 63 6d 64 2d 3e 63 5f | 66 69 6c 65 73 74 61 62 |rcmd->c_|filestab|
|00002f30| 3b 0d 20 20 20 20 63 6d | 64 2d 3e 63 5f 73 74 61 |;. cm|d->c_sta|
|00002f40| 73 68 20 3d 20 63 75 72 | 73 74 61 73 68 3b 0d 20 |sh = cur|stash;. |
|00002f50| 20 20 20 69 66 20 28 70 | 65 72 6c 64 62 20 26 26 | if (p|erldb &&|
|00002f60| 20 64 65 62 75 67 67 61 | 62 6c 65 29 0d 09 63 6d | debugga|ble)..cm|
|00002f70| 64 20 3d 20 64 6f 64 62 | 28 63 6d 64 29 3b 0d 20 |d = dodb|(cmd);. |
|00002f80| 20 20 20 72 65 74 75 72 | 6e 20 63 6d 64 3b 0d 7d | retur|n cmd;.}|
|00002f90| 0d 0d 43 4d 44 20 2a 0d | 6d 61 6b 65 5f 69 63 6d |..CMD *.|make_icm|
|00002fa0| 64 28 74 79 70 65 2c 61 | 72 67 2c 63 62 6c 6f 63 |d(type,a|rg,cbloc|
|00002fb0| 6b 29 0d 69 6e 74 20 74 | 79 70 65 3b 0d 41 52 47 |k).int t|ype;.ARG|
|00002fc0| 20 2a 61 72 67 3b 0d 73 | 74 72 75 63 74 20 63 6f | *arg;.s|truct co|
|00002fd0| 6d 70 63 6d 64 20 63 62 | 6c 6f 63 6b 3b 0d 7b 0d |mpcmd cb|lock;.{.|
|00002fe0| 20 20 20 20 72 65 67 69 | 73 74 65 72 20 43 4d 44 | regi|ster CMD|
|00002ff0| 20 2a 63 6d 64 3b 0d 20 | 20 20 20 72 65 67 69 73 | *cmd;. | regis|
|00003000| 74 65 72 20 43 4d 44 20 | 2a 61 6c 74 3b 0d 20 20 |ter CMD |*alt;. |
|00003010| 20 20 72 65 67 69 73 74 | 65 72 20 43 4d 44 20 2a | regist|er CMD *|
|00003020| 63 75 72 3b 0d 20 20 20 | 20 72 65 67 69 73 74 65 |cur;. | registe|
|00003030| 72 20 43 4d 44 20 2a 68 | 65 61 64 3b 0d 20 20 20 |r CMD *h|ead;. |
|00003040| 20 73 74 72 75 63 74 20 | 63 6f 6d 70 63 6d 64 20 | struct |compcmd |
|00003050| 6e 63 62 6c 6f 63 6b 3b | 0d 0d 20 20 20 20 4e 65 |ncblock;|.. Ne|
|00003060| 77 7a 28 31 30 39 2c 63 | 6d 64 2c 20 31 2c 20 43 |wz(109,c|md, 1, C|
|00003070| 4d 44 29 3b 0d 20 20 20 | 20 68 65 61 64 20 3d 20 |MD);. | head = |
|00003080| 63 6d 64 3b 0d 20 20 20 | 20 63 6d 64 2d 3e 63 5f |cmd;. | cmd->c_|
|00003090| 74 79 70 65 20 3d 20 74 | 79 70 65 3b 0d 20 20 20 |type = t|ype;. |
|000030a0| 20 63 6d 64 2d 3e 63 5f | 65 78 70 72 20 3d 20 61 | cmd->c_|expr = a|
|000030b0| 72 67 3b 0d 20 20 20 20 | 63 6d 64 2d 3e 75 63 6d |rg;. |cmd->ucm|
|000030c0| 64 2e 63 63 6d 64 2e 63 | 63 5f 74 72 75 65 20 3d |d.ccmd.c|c_true =|
|000030d0| 20 63 62 6c 6f 63 6b 2e | 63 6f 6d 70 5f 74 72 75 | cblock.|comp_tru|
|000030e0| 65 3b 0d 20 20 20 20 63 | 6d 64 2d 3e 75 63 6d 64 |e;. c|md->ucmd|
|000030f0| 2e 63 63 6d 64 2e 63 63 | 5f 61 6c 74 20 3d 20 63 |.ccmd.cc|_alt = c|
|00003100| 62 6c 6f 63 6b 2e 63 6f | 6d 70 5f 61 6c 74 3b 0d |block.co|mp_alt;.|
|00003110| 20 20 20 20 69 66 20 28 | 61 72 67 29 0d 09 63 6d | if (|arg)..cm|
|00003120| 64 2d 3e 63 5f 66 6c 61 | 67 73 20 7c 3d 20 43 46 |d->c_fla|gs |= CF|
|00003130| 5f 43 4f 4e 44 3b 0d 20 | 20 20 20 69 66 20 28 63 |_COND;. | if (c|
|00003140| 6d 64 6c 69 6e 65 20 3d | 3d 20 4e 4f 4c 49 4e 45 |mdline =|= NOLINE|
|00003150| 29 0d 09 63 6d 64 2d 3e | 63 5f 6c 69 6e 65 20 3d |)..cmd->|c_line =|
|00003160| 20 63 75 72 63 6d 64 2d | 3e 63 5f 6c 69 6e 65 3b | curcmd-|>c_line;|
|00003170| 0d 20 20 20 20 65 6c 73 | 65 20 7b 0d 09 63 6d 64 |. els|e {..cmd|
|00003180| 2d 3e 63 5f 6c 69 6e 65 | 20 3d 20 63 6d 64 6c 69 |->c_line| = cmdli|
|00003190| 6e 65 3b 0d 09 63 6d 64 | 6c 69 6e 65 20 3d 20 4e |ne;..cmd|line = N|
|000031a0| 4f 4c 49 4e 45 3b 0d 20 | 20 20 20 7d 0d 20 20 20 |OLINE;. | }. |
|000031b0| 20 63 6d 64 2d 3e 63 5f | 66 69 6c 65 73 74 61 62 | cmd->c_|filestab|
|000031c0| 20 3d 20 63 75 72 63 6d | 64 2d 3e 63 5f 66 69 6c | = curcm|d->c_fil|
|000031d0| 65 73 74 61 62 3b 0d 20 | 20 20 20 63 6d 64 2d 3e |estab;. | cmd->|
|000031e0| 63 5f 73 74 61 73 68 20 | 3d 20 63 75 72 73 74 61 |c_stash |= cursta|
|000031f0| 73 68 3b 0d 20 20 20 20 | 63 75 72 20 3d 20 63 6d |sh;. |cur = cm|
|00003200| 64 3b 0d 20 20 20 20 61 | 6c 74 20 3d 20 63 62 6c |d;. a|lt = cbl|
|00003210| 6f 63 6b 2e 63 6f 6d 70 | 5f 61 6c 74 3b 0d 20 20 |ock.comp|_alt;. |
|00003220| 20 20 77 68 69 6c 65 20 | 28 61 6c 74 20 26 26 20 | while |(alt && |
|00003230| 61 6c 74 2d 3e 63 5f 74 | 79 70 65 20 3d 3d 20 43 |alt->c_t|ype == C|
|00003240| 5f 45 4c 53 49 46 29 20 | 7b 0d 09 63 75 72 20 3d |_ELSIF) |{..cur =|
|00003250| 20 61 6c 74 3b 0d 09 61 | 6c 74 20 3d 20 61 6c 74 | alt;..a|lt = alt|
|00003260| 2d 3e 75 63 6d 64 2e 63 | 63 6d 64 2e 63 63 5f 61 |->ucmd.c|cmd.cc_a|
|00003270| 6c 74 3b 0d 20 20 20 20 | 7d 0d 20 20 20 20 69 66 |lt;. |}. if|
|00003280| 20 28 61 6c 74 29 20 7b | 09 09 09 2f 2a 20 61 20 | (alt) {|.../* a |
|00003290| 72 65 61 6c 20 6c 69 66 | 65 20 45 4c 53 45 20 61 |real lif|e ELSE a|
|000032a0| 74 20 74 68 65 20 65 6e | 64 3f 20 2a 2f 0d 09 6e |t the en|d? */..n|
|000032b0| 63 62 6c 6f 63 6b 2e 63 | 6f 6d 70 5f 74 72 75 65 |cblock.c|omp_true|
|000032c0| 20 3d 20 61 6c 74 3b 0d | 09 6e 63 62 6c 6f 63 6b | = alt;.|.ncblock|
|000032d0| 2e 63 6f 6d 70 5f 61 6c | 74 20 3d 20 4e 75 6c 6c |.comp_al|t = Null|
|000032e0| 63 6d 64 3b 0d 09 61 6c | 74 20 3d 20 61 70 70 65 |cmd;..al|t = appe|
|000032f0| 6e 64 5f 6c 69 6e 65 28 | 63 75 72 2c 6d 61 6b 65 |nd_line(|cur,make|
|00003300| 5f 63 63 6d 64 28 43 5f | 45 4c 53 45 2c 31 2c 4e |_ccmd(C_|ELSE,1,N|
|00003310| 75 6c 6c 61 72 67 2c 6e | 63 62 6c 6f 63 6b 29 29 |ullarg,n|cblock))|
|00003320| 3b 0d 09 63 75 72 2d 3e | 75 63 6d 64 2e 63 63 6d |;..cur->|ucmd.ccm|
|00003330| 64 2e 63 63 5f 61 6c 74 | 20 3d 20 61 6c 74 3b 0d |d.cc_alt| = alt;.|
|00003340| 20 20 20 20 7d 0d 20 20 | 20 20 65 6c 73 65 0d 09 | }. | else..|
|00003350| 61 6c 74 20 3d 20 63 75 | 72 3b 09 09 2f 2a 20 6e |alt = cu|r;../* n|
|00003360| 6f 20 45 4c 53 45 2c 20 | 73 6f 20 63 75 72 20 69 |o ELSE, |so cur i|
|00003370| 73 20 70 72 6f 78 79 20 | 45 4c 53 45 20 2a 2f 0d |s proxy |ELSE */.|
|00003380| 0d 20 20 20 20 63 75 72 | 20 3d 20 63 6d 64 3b 0d |. cur| = cmd;.|
|00003390| 20 20 20 20 77 68 69 6c | 65 20 28 63 6d 64 29 20 | whil|e (cmd) |
|000033a0| 7b 09 09 2f 2a 20 6e 6f | 77 20 70 6f 69 6e 74 20 |{../* no|w point |
|000033b0| 65 76 65 72 79 6f 6e 65 | 20 61 74 20 74 68 65 20 |everyone| at the |
|000033c0| 45 4c 53 45 20 2a 2f 0d | 09 63 75 72 20 3d 20 63 |ELSE */.|.cur = c|
|000033d0| 6d 64 3b 0d 09 63 6d 64 | 20 3d 20 63 75 72 2d 3e |md;..cmd| = cur->|
|000033e0| 75 63 6d 64 2e 63 63 6d | 64 2e 63 63 5f 61 6c 74 |ucmd.ccm|d.cc_alt|
|000033f0| 3b 0d 09 63 75 72 2d 3e | 63 5f 68 65 61 64 20 3d |;..cur->|c_head =|
|00003400| 20 68 65 61 64 3b 0d 09 | 69 66 20 28 63 75 72 2d | head;..|if (cur-|
|00003410| 3e 63 5f 74 79 70 65 20 | 3d 3d 20 43 5f 45 4c 53 |>c_type |== C_ELS|
|00003420| 49 46 29 0d 09 20 20 20 | 20 63 75 72 2d 3e 63 5f |IF).. | cur->c_|
|00003430| 74 79 70 65 20 3d 20 43 | 5f 49 46 3b 0d 09 69 66 |type = C|_IF;..if|
|00003440| 20 28 63 75 72 2d 3e 63 | 5f 74 79 70 65 20 3d 3d | (cur->c|_type ==|
|00003450| 20 43 5f 49 46 29 0d 09 | 20 20 20 20 63 75 72 2d | C_IF)..| cur-|
|00003460| 3e 75 63 6d 64 2e 63 63 | 6d 64 2e 63 63 5f 61 6c |>ucmd.cc|md.cc_al|
|00003470| 74 20 3d 20 61 6c 74 3b | 0d 09 69 66 20 28 63 75 |t = alt;|..if (cu|
|00003480| 72 20 3d 3d 20 61 6c 74 | 29 0d 09 20 20 20 20 62 |r == alt|).. b|
|00003490| 72 65 61 6b 3b 0d 09 63 | 75 72 2d 3e 63 5f 6e 65 |reak;..c|ur->c_ne|
|000034a0| 78 74 20 3d 20 63 6d 64 | 3b 0d 20 20 20 20 7d 0d |xt = cmd|;. }.|
|000034b0| 20 20 20 20 69 66 20 28 | 70 65 72 6c 64 62 29 0d | if (|perldb).|
|000034c0| 09 63 75 72 20 3d 20 64 | 6f 64 62 28 63 75 72 29 |.cur = d|odb(cur)|
|000034d0| 3b 0d 20 20 20 20 72 65 | 74 75 72 6e 20 63 75 72 |;. re|turn cur|
|000034e0| 3b 0d 7d 0d 0d 76 6f 69 | 64 0d 6f 70 74 5f 61 72 |;.}..voi|d.opt_ar|
|000034f0| 67 28 63 6d 64 2c 66 6c | 69 70 6f 72 66 6c 6f 70 |g(cmd,fl|iporflop|
|00003500| 2c 61 63 6d 64 29 0d 72 | 65 67 69 73 74 65 72 20 |,acmd).r|egister |
|00003510| 43 4d 44 20 2a 63 6d 64 | 3b 0d 69 6e 74 20 66 6c |CMD *cmd|;.int fl|
|00003520| 69 70 6f 72 66 6c 6f 70 | 3b 0d 69 6e 74 20 61 63 |iporflop|;.int ac|
|00003530| 6d 64 3b 0d 7b 0d 20 20 | 20 20 72 65 67 69 73 74 |md;.{. | regist|
|00003540| 65 72 20 41 52 47 20 2a | 61 72 67 3b 0d 20 20 20 |er ARG *|arg;. |
|00003550| 20 69 6e 74 20 6f 70 74 | 20 3d 20 43 46 54 5f 45 | int opt| = CFT_E|
|00003560| 56 41 4c 3b 0d 20 20 20 | 20 69 6e 74 20 73 75 72 |VAL;. | int sur|
|00003570| 65 20 3d 20 30 3b 0d 20 | 20 20 20 41 52 47 20 2a |e = 0;. | ARG *|
|00003580| 61 72 67 32 3b 0d 20 20 | 20 20 69 6e 74 20 63 6f |arg2;. | int co|
|00003590| 6e 74 65 78 74 20 3d 20 | 30 3b 09 2f 2a 20 30 20 |ntext = |0;./* 0 |
|000035a0| 3d 20 6e 6f 72 6d 61 6c | 2c 20 31 20 3d 20 62 65 |= normal|, 1 = be|
|000035b0| 66 6f 72 65 20 26 26 2c | 20 32 20 3d 20 62 65 66 |fore &&,| 2 = bef|
|000035c0| 6f 72 65 20 7c 7c 20 2a | 2f 0d 20 20 20 20 69 6e |ore || *|/. in|
|000035d0| 74 20 66 6c 70 20 3d 20 | 66 6c 69 70 6f 72 66 6c |t flp = |fliporfl|
|000035e0| 6f 70 3b 0d 0d 20 20 20 | 20 69 66 20 28 21 63 6d |op;.. | if (!cm|
|000035f0| 64 29 0d 09 72 65 74 75 | 72 6e 3b 0d 20 20 20 20 |d)..retu|rn;. |
|00003600| 69 66 20 28 21 28 61 72 | 67 20 3d 20 63 6d 64 2d |if (!(ar|g = cmd-|
|00003610| 3e 63 5f 65 78 70 72 29 | 29 20 7b 0d 09 63 6d 64 |>c_expr)|) {..cmd|
|00003620| 2d 3e 63 5f 66 6c 61 67 | 73 20 26 3d 20 7e 43 46 |->c_flag|s &= ~CF|
|00003630| 5f 43 4f 4e 44 3b 0d 09 | 72 65 74 75 72 6e 3b 0d |_COND;..|return;.|
|00003640| 20 20 20 20 7d 0d 0d 20 | 20 20 20 2f 2a 20 43 61 | }.. | /* Ca|
|00003650| 6e 20 77 65 20 74 75 72 | 6e 20 26 26 20 61 6e 64 |n we tur|n && and|
|00003660| 20 7c 7c 20 69 6e 74 6f | 20 69 66 20 61 6e 64 20 | || into| if and |
|00003670| 75 6e 6c 65 73 73 3f 20 | 2a 2f 0d 0d 20 20 20 20 |unless? |*/.. |
|00003680| 69 66 20 28 61 63 6d 64 | 20 26 26 20 21 63 6d 64 |if (acmd| && !cmd|
|00003690| 2d 3e 75 63 6d 64 2e 61 | 63 6d 64 2e 61 63 5f 65 |->ucmd.a|cmd.ac_e|
|000036a0| 78 70 72 20 26 26 20 21 | 28 63 6d 64 2d 3e 63 5f |xpr && !|(cmd->c_|
|000036b0| 66 6c 61 67 73 20 26 20 | 43 46 5f 54 45 52 4d 29 |flags & |CF_TERM)|
|000036c0| 20 26 26 0d 20 20 20 20 | 20 20 28 61 72 67 2d 3e | &&. | (arg->|
|000036d0| 61 72 67 5f 74 79 70 65 | 20 3d 3d 20 4f 5f 41 4e |arg_type| == O_AN|
|000036e0| 44 20 7c 7c 20 61 72 67 | 2d 3e 61 72 67 5f 74 79 |D || arg|->arg_ty|
|000036f0| 70 65 20 3d 3d 20 4f 5f | 4f 52 29 20 29 20 7b 0d |pe == O_|OR) ) {.|
|00003700| 09 64 65 68 6f 69 73 74 | 28 61 72 67 2c 31 29 3b |.dehoist|(arg,1);|
|00003710| 0d 09 61 72 67 5b 32 5d | 2e 61 72 67 5f 74 79 70 |..arg[2]|.arg_typ|
|00003720| 65 20 26 3d 20 41 5f 4d | 41 53 4b 3b 09 2f 2a 20 |e &= A_M|ASK;./* |
|00003730| 64 6f 6e 27 74 20 73 75 | 70 70 72 65 73 73 20 65 |don't su|ppress e|
|00003740| 76 61 6c 20 2a 2f 0d 09 | 64 65 68 6f 69 73 74 28 |val */..|dehoist(|
|00003750| 61 72 67 2c 32 29 3b 0d | 09 63 6d 64 2d 3e 75 63 |arg,2);.|.cmd->uc|
|00003760| 6d 64 2e 61 63 6d 64 2e | 61 63 5f 65 78 70 72 20 |md.acmd.|ac_expr |
|00003770| 3d 20 61 72 67 5b 32 5d | 2e 61 72 67 5f 70 74 72 |= arg[2]|.arg_ptr|
|00003780| 2e 61 72 67 5f 61 72 67 | 3b 0d 09 63 6d 64 2d 3e |.arg_arg|;..cmd->|
|00003790| 63 5f 65 78 70 72 20 3d | 20 61 72 67 5b 31 5d 2e |c_expr =| arg[1].|
|000037a0| 61 72 67 5f 70 74 72 2e | 61 72 67 5f 61 72 67 3b |arg_ptr.|arg_arg;|
|000037b0| 0d 09 69 66 20 28 61 72 | 67 2d 3e 61 72 67 5f 74 |..if (ar|g->arg_t|
|000037c0| 79 70 65 20 3d 3d 20 4f | 5f 4f 52 29 0d 09 20 20 |ype == O|_OR).. |
|000037d0| 20 20 63 6d 64 2d 3e 63 | 5f 66 6c 61 67 73 20 5e | cmd->c|_flags ^|
|000037e0| 3d 20 43 46 5f 49 4e 56 | 45 52 54 3b 09 09 2f 2a |= CF_INV|ERT;../*|
|000037f0| 20 7c 7c 20 69 73 20 6c | 69 6b 65 20 75 6e 6c 65 | || is l|ike unle|
|00003800| 73 73 20 2a 2f 0d 09 61 | 72 67 2d 3e 61 72 67 5f |ss */..a|rg->arg_|
|00003810| 6c 65 6e 20 3d 20 30 3b | 0d 09 66 72 65 65 5f 61 |len = 0;|..free_a|
|00003820| 72 67 28 61 72 67 29 3b | 0d 09 61 72 67 20 3d 20 |rg(arg);|..arg = |
|00003830| 63 6d 64 2d 3e 63 5f 65 | 78 70 72 3b 0d 20 20 20 |cmd->c_e|xpr;. |
|00003840| 20 7d 0d 0d 20 20 20 20 | 2f 2a 20 54 75 72 6e 20 | }.. |/* Turn |
|00003850| 22 69 66 20 28 21 65 78 | 70 72 29 22 20 69 6e 74 |"if (!ex|pr)" int|
|00003860| 6f 20 22 75 6e 6c 65 73 | 73 20 28 65 78 70 72 29 |o "unles|s (expr)|
|00003870| 22 20 2a 2f 0d 0d 20 20 | 20 20 69 66 20 28 21 28 |" */.. | if (!(|
|00003880| 63 6d 64 2d 3e 63 5f 66 | 6c 61 67 73 20 26 20 43 |cmd->c_f|lags & C|
|00003890| 46 5f 54 45 52 4d 29 29 | 20 7b 09 09 2f 2a 20 75 |F_TERM))| {../* u|
|000038a0| 6e 6c 65 73 73 20 72 65 | 74 75 72 6e 20 76 61 6c |nless re|turn val|
|000038b0| 75 65 20 77 61 6e 74 65 | 64 20 2a 2f 0d 09 77 68 |ue wante|d */..wh|
|000038c0| 69 6c 65 20 28 61 72 67 | 2d 3e 61 72 67 5f 74 79 |ile (arg|->arg_ty|
|000038d0| 70 65 20 3d 3d 20 4f 5f | 4e 4f 54 29 20 7b 0d 09 |pe == O_|NOT) {..|
|000038e0| 20 20 20 20 64 65 68 6f | 69 73 74 28 61 72 67 2c | deho|ist(arg,|
|000038f0| 31 29 3b 0d 09 20 20 20 | 20 63 6d 64 2d 3e 63 5f |1);.. | cmd->c_|
|00003900| 66 6c 61 67 73 20 5e 3d | 20 43 46 5f 49 4e 56 45 |flags ^=| CF_INVE|
|00003910| 52 54 3b 09 09 2f 2a 20 | 66 6c 69 70 20 73 65 6e |RT;../* |flip sen|
|00003920| 73 65 20 6f 66 20 63 6d | 64 20 2a 2f 0d 09 20 20 |se of cm|d */.. |
|00003930| 20 20 63 6d 64 2d 3e 63 | 5f 65 78 70 72 20 3d 20 | cmd->c|_expr = |
|00003940| 61 72 67 5b 31 5d 2e 61 | 72 67 5f 70 74 72 2e 61 |arg[1].a|rg_ptr.a|
|00003950| 72 67 5f 61 72 67 3b 20 | 2f 2a 20 68 6f 69 73 74 |rg_arg; |/* hoist|
|00003960| 20 74 68 65 20 72 65 73 | 74 20 6f 66 20 65 78 70 | the res|t of exp|
|00003970| 72 20 2a 2f 0d 09 20 20 | 20 20 66 72 65 65 5f 61 |r */.. | free_a|
|00003980| 72 67 28 61 72 67 29 3b | 0d 09 20 20 20 20 61 72 |rg(arg);|.. ar|
|00003990| 67 20 3d 20 63 6d 64 2d | 3e 63 5f 65 78 70 72 3b |g = cmd-|>c_expr;|
|000039a0| 09 09 09 2f 2a 20 68 65 | 72 65 20 77 65 20 67 6f |.../* he|re we go|
|000039b0| 20 61 67 61 69 6e 20 2a | 2f 0d 09 7d 0d 20 20 20 | again *|/..}. |
|000039c0| 20 7d 0d 0d 20 20 20 20 | 69 66 20 28 21 61 72 67 | }.. |if (!arg|
|000039d0| 2d 3e 61 72 67 5f 6c 65 | 6e 29 20 7b 09 09 2f 2a |->arg_le|n) {../*|
|000039e0| 20 73 61 6e 69 74 79 20 | 63 68 65 63 6b 20 2a 2f | sanity |check */|
|000039f0| 0d 09 63 6d 64 2d 3e 63 | 5f 66 6c 61 67 73 20 7c |..cmd->c|_flags ||
|00003a00| 3d 20 6f 70 74 3b 0d 09 | 72 65 74 75 72 6e 3b 0d |= opt;..|return;.|
|00003a10| 20 20 20 20 7d 0d 0d 20 | 20 20 20 2f 2a 20 66 6f | }.. | /* fo|
|00003a20| 72 20 22 63 6f 6e 64 20 | 2e 2e 20 63 6f 6e 64 22 |r "cond |.. cond"|
|00003a30| 20 77 65 20 73 65 74 20 | 75 70 20 66 6f 72 20 74 | we set |up for t|
|00003a40| 68 65 20 69 6e 69 74 69 | 61 6c 20 63 68 65 63 6b |he initi|al check|
|00003a50| 20 2a 2f 0d 0d 20 20 20 | 20 69 66 20 28 61 72 67 | */.. | if (arg|
|00003a60| 2d 3e 61 72 67 5f 74 79 | 70 65 20 3d 3d 20 4f 5f |->arg_ty|pe == O_|
|00003a70| 46 4c 49 50 29 0d 09 63 | 6f 6e 74 65 78 74 20 7c |FLIP)..c|ontext ||
|00003a80| 3d 20 34 3b 0d 0d 20 20 | 20 20 2f 2a 20 66 6f 72 |= 4;.. | /* for|
|00003a90| 20 22 63 6f 6e 64 20 26 | 26 20 65 78 70 72 22 20 | "cond &|& expr" |
|00003aa0| 61 6e 64 20 22 63 6f 6e | 64 20 7c 7c 20 65 78 70 |and "con|d || exp|
|00003ab0| 72 22 20 77 65 20 63 61 | 6e 20 69 67 6e 6f 72 65 |r" we ca|n ignore|
|00003ac0| 20 65 78 70 72 2c 20 73 | 6f 72 74 20 6f 66 20 2a | expr, s|ort of *|
|00003ad0| 2f 0d 0d 20 20 6d 6f 72 | 65 63 6f 6e 74 65 78 74 |/.. mor|econtext|
|00003ae0| 3a 0d 20 20 20 20 69 66 | 20 28 61 72 67 2d 3e 61 |:. if| (arg->a|
|00003af0| 72 67 5f 74 79 70 65 20 | 3d 3d 20 4f 5f 41 4e 44 |rg_type |== O_AND|
|00003b00| 29 0d 09 63 6f 6e 74 65 | 78 74 20 7c 3d 20 31 3b |)..conte|xt |= 1;|
|00003b10| 0d 20 20 20 20 65 6c 73 | 65 20 69 66 20 28 61 72 |. els|e if (ar|
|00003b20| 67 2d 3e 61 72 67 5f 74 | 79 70 65 20 3d 3d 20 4f |g->arg_t|ype == O|
|00003b30| 5f 4f 52 29 0d 09 63 6f | 6e 74 65 78 74 20 7c 3d |_OR)..co|ntext |=|
|00003b40| 20 32 3b 0d 20 20 20 20 | 69 66 20 28 63 6f 6e 74 | 2;. |if (cont|
|00003b50| 65 78 74 20 26 26 20 28 | 61 72 67 5b 66 6c 70 5d |ext && (|arg[flp]|
|00003b60| 2e 61 72 67 5f 74 79 70 | 65 20 26 20 41 5f 4d 41 |.arg_typ|e & A_MA|
|00003b70| 53 4b 29 20 3d 3d 20 41 | 5f 45 58 50 52 29 20 7b |SK) == A|_EXPR) {|
|00003b80| 0d 09 61 72 67 20 3d 20 | 61 72 67 5b 66 6c 70 5d |..arg = |arg[flp]|
|00003b90| 2e 61 72 67 5f 70 74 72 | 2e 61 72 67 5f 61 72 67 |.arg_ptr|.arg_arg|
|00003ba0| 3b 0d 09 66 6c 70 20 3d | 20 31 3b 0d 09 69 66 20 |;..flp =| 1;..if |
|00003bb0| 28 61 72 67 2d 3e 61 72 | 67 5f 74 79 70 65 20 3d |(arg->ar|g_type =|
|00003bc0| 3d 20 4f 5f 41 4e 44 20 | 7c 7c 20 61 72 67 2d 3e |= O_AND ||| arg->|
|00003bd0| 61 72 67 5f 74 79 70 65 | 20 3d 3d 20 4f 5f 4f 52 |arg_type| == O_OR|
|00003be0| 29 0d 09 20 20 20 20 67 | 6f 74 6f 20 6d 6f 72 65 |).. g|oto more|
|00003bf0| 63 6f 6e 74 65 78 74 3b | 0d 20 20 20 20 7d 0d 20 |context;|. }. |
|00003c00| 20 20 20 69 66 20 28 28 | 63 6f 6e 74 65 78 74 20 | if ((|context |
|00003c10| 26 20 33 29 20 3d 3d 20 | 33 29 0d 09 72 65 74 75 |& 3) == |3)..retu|
|00003c20| 72 6e 3b 0d 0d 20 20 20 | 20 69 66 20 28 61 72 67 |rn;.. | if (arg|
|00003c30| 5b 66 6c 70 5d 2e 61 72 | 67 5f 66 6c 61 67 73 20 |[flp].ar|g_flags |
|00003c40| 26 20 28 41 46 5f 50 52 | 45 7c 41 46 5f 50 4f 53 |& (AF_PR|E|AF_POS|
|00003c50| 54 29 29 20 7b 0d 09 63 | 6d 64 2d 3e 63 5f 66 6c |T)) {..c|md->c_fl|
|00003c60| 61 67 73 20 7c 3d 20 6f | 70 74 3b 0d 09 69 66 20 |ags |= o|pt;..if |
|00003c70| 28 61 63 6d 64 20 26 26 | 20 21 63 6d 64 2d 3e 75 |(acmd &&| !cmd->u|
|00003c80| 63 6d 64 2e 61 63 6d 64 | 2e 61 63 5f 65 78 70 72 |cmd.acmd|.ac_expr|
|00003c90| 20 26 26 20 21 28 63 6d | 64 2d 3e 63 5f 66 6c 61 | && !(cm|d->c_fla|
|00003ca0| 67 73 20 26 20 43 46 5f | 54 45 52 4d 29 0d 09 20 |gs & CF_|TERM).. |
|00003cb0| 20 26 26 20 63 6d 64 2d | 3e 63 5f 65 78 70 72 2d | && cmd-|>c_expr-|
|00003cc0| 3e 61 72 67 5f 74 79 70 | 65 20 3d 3d 20 4f 5f 49 |>arg_typ|e == O_I|
|00003cd0| 54 45 4d 29 20 7b 0d 09 | 20 20 20 20 61 72 67 5b |TEM) {..| arg[|
|00003ce0| 66 6c 70 5d 2e 61 72 67 | 5f 66 6c 61 67 73 20 26 |flp].arg|_flags &|
|00003cf0| 3d 20 7e 41 46 5f 50 4f | 53 54 3b 09 2f 2a 20 70 |= ~AF_PO|ST;./* p|
|00003d00| 72 65 66 65 72 20 2b 2b | 24 66 6f 6f 20 74 6f 20 |refer ++|$foo to |
|00003d10| 24 66 6f 6f 2b 2b 20 2a | 2f 0d 09 20 20 20 20 61 |$foo++ *|/.. a|
|00003d20| 72 67 5b 66 6c 70 5d 2e | 61 72 67 5f 66 6c 61 67 |rg[flp].|arg_flag|
|00003d30| 73 20 7c 3d 20 41 46 5f | 50 52 45 3b 09 2f 2a 20 |s |= AF_|PRE;./* |
|00003d40| 20 69 66 20 76 61 6c 75 | 65 20 6e 6f 74 20 77 61 | if valu|e not wa|
|00003d50| 6e 74 65 64 20 2a 2f 0d | 09 7d 0d 09 72 65 74 75 |nted */.|.}..retu|
|00003d60| 72 6e 3b 09 09 09 09 2f | 2a 20 73 69 64 65 20 65 |rn;..../|* side e|
|00003d70| 66 66 65 63 74 2c 20 63 | 61 6e 27 74 20 6f 70 74 |ffect, c|an't opt|
|00003d80| 69 6d 69 7a 65 20 2a 2f | 0d 20 20 20 20 7d 0d 0d |imize */|. }..|
|00003d90| 20 20 20 20 69 66 20 28 | 61 72 67 2d 3e 61 72 67 | if (|arg->arg|
|00003da0| 5f 74 79 70 65 20 3d 3d | 20 4f 5f 49 54 45 4d 20 |_type ==| O_ITEM |
|00003db0| 7c 7c 20 61 72 67 2d 3e | 61 72 67 5f 74 79 70 65 ||| arg->|arg_type|
|00003dc0| 20 3d 3d 20 4f 5f 46 4c | 49 50 20 7c 7c 0d 20 20 | == O_FL|IP ||. |
|00003dd0| 20 20 20 20 61 72 67 2d | 3e 61 72 67 5f 74 79 70 | arg-|>arg_typ|
|00003de0| 65 20 3d 3d 20 4f 5f 41 | 4e 44 20 7c 7c 20 61 72 |e == O_A|ND || ar|
|00003df0| 67 2d 3e 61 72 67 5f 74 | 79 70 65 20 3d 3d 20 4f |g->arg_t|ype == O|
|00003e00| 5f 4f 52 29 20 7b 0d 09 | 69 66 20 28 28 61 72 67 |_OR) {..|if ((arg|
|00003e10| 5b 66 6c 70 5d 2e 61 72 | 67 5f 74 79 70 65 20 26 |[flp].ar|g_type &|
|00003e20| 20 41 5f 4d 41 53 4b 29 | 20 3d 3d 20 41 5f 53 49 | A_MASK)| == A_SI|
|00003e30| 4e 47 4c 45 29 20 7b 0d | 09 20 20 20 20 6f 70 74 |NGLE) {.|. opt|
|00003e40| 20 3d 20 28 73 74 72 5f | 74 72 75 65 28 61 72 67 | = (str_|true(arg|
|00003e50| 5b 66 6c 70 5d 2e 61 72 | 67 5f 70 74 72 2e 61 72 |[flp].ar|g_ptr.ar|
|00003e60| 67 5f 73 74 72 29 20 3f | 20 43 46 54 5f 54 52 55 |g_str) ?| CFT_TRU|
|00003e70| 45 20 3a 20 43 46 54 5f | 46 41 4c 53 45 29 3b 0d |E : CFT_|FALSE);.|
|00003e80| 09 20 20 20 20 63 6d 64 | 2d 3e 63 5f 73 68 6f 72 |. cmd|->c_shor|
|00003e90| 74 20 3d 20 73 74 72 5f | 73 6d 61 6b 65 28 61 72 |t = str_|smake(ar|
|00003ea0| 67 5b 66 6c 70 5d 2e 61 | 72 67 5f 70 74 72 2e 61 |g[flp].a|rg_ptr.a|
|00003eb0| 72 67 5f 73 74 72 29 3b | 0d 09 20 20 20 20 67 6f |rg_str);|.. go|
|00003ec0| 74 6f 20 6c 69 74 65 72 | 61 6c 3b 0d 09 7d 0d 09 |to liter|al;..}..|
|00003ed0| 65 6c 73 65 20 69 66 20 | 28 28 61 72 67 5b 66 6c |else if |((arg[fl|
|00003ee0| 70 5d 2e 61 72 67 5f 74 | 79 70 65 20 26 20 41 5f |p].arg_t|ype & A_|
|00003ef0| 4d 41 53 4b 29 20 3d 3d | 20 41 5f 53 54 41 42 20 |MASK) ==| A_STAB |
|00003f00| 7c 7c 0d 09 20 20 28 61 | 72 67 5b 66 6c 70 5d 2e |||.. (a|rg[flp].|
|00003f10| 61 72 67 5f 74 79 70 65 | 20 26 20 41 5f 4d 41 53 |arg_type| & A_MAS|
|00003f20| 4b 29 20 3d 3d 20 41 5f | 4c 56 41 4c 29 20 7b 0d |K) == A_|LVAL) {.|
|00003f30| 09 20 20 20 20 63 6d 64 | 2d 3e 63 5f 73 74 61 62 |. cmd|->c_stab|
|00003f40| 20 20 3d 20 61 72 67 5b | 66 6c 70 5d 2e 61 72 67 | = arg[|flp].arg|
|00003f50| 5f 70 74 72 2e 61 72 67 | 5f 73 74 61 62 3b 0d 09 |_ptr.arg|_stab;..|
|00003f60| 20 20 20 20 69 66 20 28 | 21 63 6f 6e 74 65 78 74 | if (|!context|
|00003f70| 29 0d 09 09 61 72 67 5b | 66 6c 70 5d 2e 61 72 67 |)...arg[|flp].arg|
|00003f80| 5f 70 74 72 2e 61 72 67 | 5f 73 74 61 62 20 3d 20 |_ptr.arg|_stab = |
|00003f90| 4e 75 6c 6c 73 74 61 62 | 3b 0d 09 20 20 20 20 6f |Nullstab|;.. o|
|00003fa0| 70 74 20 3d 20 43 46 54 | 5f 52 45 47 3b 0d 09 20 |pt = CFT|_REG;.. |
|00003fb0| 20 6c 69 74 65 72 61 6c | 3a 0d 09 20 20 20 20 69 | literal|:.. i|
|00003fc0| 66 20 28 21 63 6f 6e 74 | 65 78 74 29 20 7b 09 2f |f (!cont|ext) {./|
|00003fd0| 2a 20 6e 6f 20 26 26 20 | 6f 72 20 7c 7c 3f 20 2a |* no && |or ||? *|
|00003fe0| 2f 0d 09 09 61 72 67 5f | 66 72 65 65 28 61 72 67 |/...arg_|free(arg|
|00003ff0| 29 3b 0d 09 09 63 6d 64 | 2d 3e 63 5f 65 78 70 72 |);...cmd|->c_expr|
|00004000| 20 3d 20 4e 75 6c 6c 61 | 72 67 3b 0d 09 20 20 20 | = Nulla|rg;.. |
|00004010| 20 7d 0d 09 20 20 20 20 | 69 66 20 28 21 28 63 6f | }.. |if (!(co|
|00004020| 6e 74 65 78 74 20 26 20 | 31 29 29 0d 09 09 63 6d |ntext & |1))...cm|
|00004030| 64 2d 3e 63 5f 66 6c 61 | 67 73 20 7c 3d 20 43 46 |d->c_fla|gs |= CF|
|00004040| 5f 45 51 53 55 52 45 3b | 0d 09 20 20 20 20 69 66 |_EQSURE;|.. if|
|00004050| 20 28 21 28 63 6f 6e 74 | 65 78 74 20 26 20 32 29 | (!(cont|ext & 2)|
|00004060| 29 0d 09 09 63 6d 64 2d | 3e 63 5f 66 6c 61 67 73 |)...cmd-|>c_flags|
|00004070| 20 7c 3d 20 43 46 5f 4e | 45 53 55 52 45 3b 0d 09 | |= CF_N|ESURE;..|
|00004080| 7d 0d 20 20 20 20 7d 0d | 20 20 20 20 65 6c 73 65 |}. }.| else|
|00004090| 20 69 66 20 28 61 72 67 | 2d 3e 61 72 67 5f 74 79 | if (arg|->arg_ty|
|000040a0| 70 65 20 3d 3d 20 4f 5f | 4d 41 54 43 48 20 7c 7c |pe == O_|MATCH |||
|000040b0| 20 61 72 67 2d 3e 61 72 | 67 5f 74 79 70 65 20 3d | arg->ar|g_type =|
|000040c0| 3d 20 4f 5f 53 55 42 53 | 54 20 7c 7c 0d 09 20 20 |= O_SUBS|T ||.. |
|000040d0| 20 20 20 61 72 67 2d 3e | 61 72 67 5f 74 79 70 65 | arg->|arg_type|
|000040e0| 20 3d 3d 20 4f 5f 4e 4d | 41 54 43 48 20 7c 7c 20 | == O_NM|ATCH || |
|000040f0| 61 72 67 2d 3e 61 72 67 | 5f 74 79 70 65 20 3d 3d |arg->arg|_type ==|
|00004100| 20 4f 5f 4e 53 55 42 53 | 54 29 20 7b 0d 09 69 66 | O_NSUBS|T) {..if|
|00004110| 20 28 28 61 72 67 5b 31 | 5d 2e 61 72 67 5f 74 79 | ((arg[1|].arg_ty|
|00004120| 70 65 20 3d 3d 20 41 5f | 53 54 41 42 20 7c 7c 20 |pe == A_|STAB || |
|00004130| 61 72 67 5b 31 5d 2e 61 | 72 67 5f 74 79 70 65 20 |arg[1].a|rg_type |
|00004140| 3d 3d 20 41 5f 4c 56 41 | 4c 29 20 26 26 0d 09 09 |== A_LVA|L) &&...|
|00004150| 28 61 72 67 5b 32 5d 2e | 61 72 67 5f 74 79 70 65 |(arg[2].|arg_type|
|00004160| 20 26 20 41 5f 4d 41 53 | 4b 29 20 3d 3d 20 41 5f | & A_MAS|K) == A_|
|00004170| 53 50 41 54 20 26 26 0d | 09 09 61 72 67 5b 32 5d |SPAT &&.|..arg[2]|
|00004180| 2e 61 72 67 5f 70 74 72 | 2e 61 72 67 5f 73 70 61 |.arg_ptr|.arg_spa|
|00004190| 74 2d 3e 73 70 61 74 5f | 73 68 6f 72 74 20 26 26 |t->spat_|short &&|
|000041a0| 0d 09 09 28 61 72 67 2d | 3e 61 72 67 5f 74 79 70 |...(arg-|>arg_typ|
|000041b0| 65 20 3d 3d 20 4f 5f 53 | 55 42 53 54 20 7c 7c 20 |e == O_S|UBST || |
|000041c0| 61 72 67 2d 3e 61 72 67 | 5f 74 79 70 65 20 3d 3d |arg->arg|_type ==|
|000041d0| 20 4f 5f 4e 53 55 42 53 | 54 20 7c 7c 0d 09 09 20 | O_NSUBS|T ||... |
|000041e0| 28 61 72 67 5b 32 5d 2e | 61 72 67 5f 70 74 72 2e |(arg[2].|arg_ptr.|
|000041f0| 61 72 67 5f 73 70 61 74 | 2d 3e 73 70 61 74 5f 66 |arg_spat|->spat_f|
|00004200| 6c 61 67 73 20 26 20 53 | 50 41 54 5f 47 4c 4f 42 |lags & S|PAT_GLOB|
|00004210| 41 4c 29 20 3d 3d 20 30 | 20 29 29 20 7b 0d 09 20 |AL) == 0| )) {.. |
|00004220| 20 20 20 63 6d 64 2d 3e | 63 5f 73 74 61 62 20 20 | cmd->|c_stab |
|00004230| 3d 20 61 72 67 5b 31 5d | 2e 61 72 67 5f 70 74 72 |= arg[1]|.arg_ptr|
|00004240| 2e 61 72 67 5f 73 74 61 | 62 3b 0d 09 20 20 20 20 |.arg_sta|b;.. |
|00004250| 63 6d 64 2d 3e 63 5f 73 | 68 6f 72 74 20 3d 20 73 |cmd->c_s|hort = s|
|00004260| 74 72 5f 73 6d 61 6b 65 | 28 61 72 67 5b 32 5d 2e |tr_smake|(arg[2].|
|00004270| 61 72 67 5f 70 74 72 2e | 61 72 67 5f 73 70 61 74 |arg_ptr.|arg_spat|
|00004280| 2d 3e 73 70 61 74 5f 73 | 68 6f 72 74 29 3b 0d 09 |->spat_s|hort);..|
|00004290| 20 20 20 20 63 6d 64 2d | 3e 63 5f 73 6c 65 6e 20 | cmd-|>c_slen |
|000042a0| 20 3d 20 61 72 67 5b 32 | 5d 2e 61 72 67 5f 70 74 | = arg[2|].arg_pt|
|000042b0| 72 2e 61 72 67 5f 73 70 | 61 74 2d 3e 73 70 61 74 |r.arg_sp|at->spat|
|000042c0| 5f 73 6c 65 6e 3b 0d 09 | 20 20 20 20 69 66 20 28 |_slen;..| if (|
|000042d0| 61 72 67 5b 32 5d 2e 61 | 72 67 5f 70 74 72 2e 61 |arg[2].a|rg_ptr.a|
|000042e0| 72 67 5f 73 70 61 74 2d | 3e 73 70 61 74 5f 66 6c |rg_spat-|>spat_fl|
|000042f0| 61 67 73 20 26 20 53 50 | 41 54 5f 41 4c 4c 20 26 |ags & SP|AT_ALL &|
|00004300| 26 0d 09 09 21 28 61 72 | 67 5b 32 5d 2e 61 72 67 |&...!(ar|g[2].arg|
|00004310| 5f 70 74 72 2e 61 72 67 | 5f 73 70 61 74 2d 3e 73 |_ptr.arg|_spat->s|
|00004320| 70 61 74 5f 66 6c 61 67 | 73 20 26 20 53 50 41 54 |pat_flag|s & SPAT|
|00004330| 5f 4f 4e 43 45 29 20 26 | 26 0d 09 09 28 61 72 67 |_ONCE) &|&...(arg|
|00004340| 2d 3e 61 72 67 5f 74 79 | 70 65 20 3d 3d 20 4f 5f |->arg_ty|pe == O_|
|00004350| 4d 41 54 43 48 20 7c 7c | 20 61 72 67 2d 3e 61 72 |MATCH ||| arg->ar|
|00004360| 67 5f 74 79 70 65 20 3d | 3d 20 4f 5f 4e 4d 41 54 |g_type =|= O_NMAT|
|00004370| 43 48 29 20 29 0d 09 09 | 73 75 72 65 20 7c 3d 20 |CH) )...|sure |= |
|00004380| 43 46 5f 45 51 53 55 52 | 45 3b 09 09 2f 2a 20 28 |CF_EQSUR|E;../* (|
|00004390| 53 55 42 53 54 20 6d 75 | 73 74 20 62 65 20 66 6f |SUBST mu|st be fo|
|000043a0| 72 63 65 64 20 65 76 65 | 6e 20 2a 2f 0d 09 09 09 |rced eve|n */....|
|000043b0| 09 09 09 2f 2a 20 69 66 | 20 77 65 20 6b 6e 6f 77 |.../* if| we know|
|000043c0| 20 69 74 20 77 69 6c 6c | 20 77 6f 72 6b 2e 29 20 | it will| work.) |
|000043d0| 2a 2f 0d 09 20 20 20 20 | 69 66 20 28 61 72 67 2d |*/.. |if (arg-|
|000043e0| 3e 61 72 67 5f 74 79 70 | 65 20 21 3d 20 4f 5f 53 |>arg_typ|e != O_S|
|000043f0| 55 42 53 54 29 20 7b 0d | 09 09 73 74 72 5f 66 72 |UBST) {.|..str_fr|
|00004400| 65 65 28 61 72 67 5b 32 | 5d 2e 61 72 67 5f 70 74 |ee(arg[2|].arg_pt|
|00004410| 72 2e 61 72 67 5f 73 70 | 61 74 2d 3e 73 70 61 74 |r.arg_sp|at->spat|
|00004420| 5f 73 68 6f 72 74 29 3b | 0d 09 09 61 72 67 5b 32 |_short);|...arg[2|
|00004430| 5d 2e 61 72 67 5f 70 74 | 72 2e 61 72 67 5f 73 70 |].arg_pt|r.arg_sp|
|00004440| 61 74 2d 3e 73 70 61 74 | 5f 73 68 6f 72 74 20 3d |at->spat|_short =|
|00004450| 20 4e 75 6c 6c 73 74 72 | 3b 0d 09 09 61 72 67 5b | Nullstr|;...arg[|
|00004460| 32 5d 2e 61 72 67 5f 70 | 74 72 2e 61 72 67 5f 73 |2].arg_p|tr.arg_s|
|00004470| 70 61 74 2d 3e 73 70 61 | 74 5f 73 6c 65 6e 20 3d |pat->spa|t_slen =|
|00004480| 20 30 3b 20 2f 2a 20 6f | 6e 6c 79 20 6f 6e 65 20 | 0; /* o|nly one |
|00004490| 63 68 6b 20 2a 2f 0d 09 | 20 20 20 20 7d 0d 09 20 |chk */..| }.. |
|000044a0| 20 20 20 73 75 72 65 20 | 7c 3d 20 43 46 5f 4e 45 | sure ||= CF_NE|
|000044b0| 53 55 52 45 3b 09 09 2f | 2a 20 6e 6f 72 6d 61 6c |SURE;../|* normal|
|000044c0| 6c 79 20 6f 6e 6c 79 20 | 73 75 72 65 20 69 66 20 |ly only |sure if |
|000044d0| 69 74 20 66 61 69 6c 73 | 20 2a 2f 0d 09 20 20 20 |it fails| */.. |
|000044e0| 20 69 66 20 28 61 72 67 | 2d 3e 61 72 67 5f 74 79 | if (arg|->arg_ty|
|000044f0| 70 65 20 3d 3d 20 4f 5f | 4e 4d 41 54 43 48 20 7c |pe == O_|NMATCH ||
|00004500| 7c 20 61 72 67 2d 3e 61 | 72 67 5f 74 79 70 65 20 || arg->a|rg_type |
|00004510| 3d 3d 20 4f 5f 4e 53 55 | 42 53 54 29 0d 09 09 63 |== O_NSU|BST)...c|
|00004520| 6d 64 2d 3e 63 5f 66 6c | 61 67 73 20 7c 3d 20 43 |md->c_fl|ags |= C|
|00004530| 46 5f 46 49 52 53 54 4e | 45 47 3b 0d 09 20 20 20 |F_FIRSTN|EG;.. |
|00004540| 20 69 66 20 28 63 6f 6e | 74 65 78 74 20 26 20 31 | if (con|text & 1|
|00004550| 29 20 7b 09 09 2f 2a 20 | 6f 6e 6c 79 20 73 75 72 |) {../* |only sur|
|00004560| 65 20 69 66 20 74 68 69 | 6e 67 20 69 73 20 66 61 |e if thi|ng is fa|
|00004570| 6c 73 65 20 2a 2f 0d 09 | 09 69 66 20 28 63 6d 64 |lse */..|.if (cmd|
|00004580| 2d 3e 63 5f 66 6c 61 67 | 73 20 26 20 43 46 5f 46 |->c_flag|s & CF_F|
|00004590| 49 52 53 54 4e 45 47 29 | 0d 09 09 20 20 20 20 73 |IRSTNEG)|... s|
|000045a0| 75 72 65 20 26 3d 20 7e | 43 46 5f 4e 45 53 55 52 |ure &= ~|CF_NESUR|
|000045b0| 45 3b 0d 09 09 65 6c 73 | 65 0d 09 09 20 20 20 20 |E;...els|e... |
|000045c0| 73 75 72 65 20 26 3d 20 | 7e 43 46 5f 45 51 53 55 |sure &= |~CF_EQSU|
|000045d0| 52 45 3b 0d 09 20 20 20 | 20 7d 0d 09 20 20 20 20 |RE;.. | }.. |
|000045e0| 65 6c 73 65 20 69 66 20 | 28 63 6f 6e 74 65 78 74 |else if |(context|
|000045f0| 20 26 20 32 29 20 7b 09 | 2f 2a 20 6f 6e 6c 79 20 | & 2) {.|/* only |
|00004600| 73 75 72 65 20 69 66 20 | 74 68 69 6e 67 20 69 73 |sure if |thing is|
|00004610| 20 74 72 75 65 20 2a 2f | 0d 09 09 69 66 20 28 63 | true */|...if (c|
|00004620| 6d 64 2d 3e 63 5f 66 6c | 61 67 73 20 26 20 43 46 |md->c_fl|ags & CF|
|00004630| 5f 46 49 52 53 54 4e 45 | 47 29 0d 09 09 20 20 20 |_FIRSTNE|G)... |
|00004640| 20 73 75 72 65 20 26 3d | 20 7e 43 46 5f 45 51 53 | sure &=| ~CF_EQS|
|00004650| 55 52 45 3b 0d 09 09 65 | 6c 73 65 0d 09 09 20 20 |URE;...e|lse... |
|00004660| 20 20 73 75 72 65 20 26 | 3d 20 7e 43 46 5f 4e 45 | sure &|= ~CF_NE|
|00004670| 53 55 52 45 3b 0d 09 20 | 20 20 20 7d 0d 09 20 20 |SURE;.. | }.. |
|00004680| 20 20 69 66 20 28 73 75 | 72 65 20 26 20 28 43 46 | if (su|re & (CF|
|00004690| 5f 45 51 53 55 52 45 7c | 43 46 5f 4e 45 53 55 52 |_EQSURE||CF_NESUR|
|000046a0| 45 29 29 20 7b 09 2f 2a | 20 69 66 20 77 65 20 6b |E)) {./*| if we k|
|000046b0| 6e 6f 77 20 61 6e 79 74 | 68 69 6e 67 2a 2f 0d 09 |now anyt|hing*/..|
|000046c0| 09 69 66 20 28 61 72 67 | 5b 32 5d 2e 61 72 67 5f |.if (arg|[2].arg_|
|000046d0| 70 74 72 2e 61 72 67 5f | 73 70 61 74 2d 3e 73 70 |ptr.arg_|spat->sp|
|000046e0| 61 74 5f 66 6c 61 67 73 | 20 26 20 53 50 41 54 5f |at_flags| & SPAT_|
|000046f0| 53 43 41 4e 46 49 52 53 | 54 29 0d 09 09 20 20 20 |SCANFIRS|T)... |
|00004700| 20 6f 70 74 20 3d 20 43 | 46 54 5f 53 43 41 4e 3b | opt = C|FT_SCAN;|
|00004710| 0d 09 09 65 6c 73 65 0d | 09 09 20 20 20 20 6f 70 |...else.|.. op|
|00004720| 74 20 3d 20 43 46 54 5f | 41 4e 43 48 4f 52 3b 0d |t = CFT_|ANCHOR;.|
|00004730| 09 09 69 66 20 28 73 75 | 72 65 20 3d 3d 20 28 43 |..if (su|re == (C|
|00004740| 46 5f 45 51 53 55 52 45 | 7c 43 46 5f 4e 45 53 55 |F_EQSURE||CF_NESU|
|00004750| 52 45 29 09 2f 2a 20 72 | 65 61 6c 6c 79 20 73 75 |RE)./* r|eally su|
|00004760| 72 65 3f 20 2a 2f 0d 09 | 09 20 20 20 20 26 26 20 |re? */..|. && |
|00004770| 61 72 67 2d 3e 61 72 67 | 5f 74 79 70 65 20 3d 3d |arg->arg|_type ==|
|00004780| 20 4f 5f 4d 41 54 43 48 | 0d 09 09 20 20 20 20 26 | O_MATCH|... &|
|00004790| 26 20 63 6f 6e 74 65 78 | 74 20 26 20 34 0d 09 09 |& contex|t & 4...|
|000047a0| 20 20 20 20 26 26 20 66 | 6c 69 70 6f 72 66 6c 6f | && f|liporflo|
|000047b0| 70 20 3d 3d 20 31 29 20 | 7b 0d 09 09 20 20 20 20 |p == 1) |{... |
|000047c0| 73 70 61 74 5f 66 72 65 | 65 28 61 72 67 5b 32 5d |spat_fre|e(arg[2]|
|000047d0| 2e 61 72 67 5f 70 74 72 | 2e 61 72 67 5f 73 70 61 |.arg_ptr|.arg_spa|
|000047e0| 74 29 3b 0d 09 09 20 20 | 20 20 61 72 67 5b 32 5d |t);... | arg[2]|
|000047f0| 2e 61 72 67 5f 70 74 72 | 2e 61 72 67 5f 73 70 61 |.arg_ptr|.arg_spa|
|00004800| 74 20 3d 20 4e 75 6c 6c | 73 70 61 74 3b 09 2f 2a |t = Null|spat;./*|
|00004810| 20 64 6f 6e 27 74 20 64 | 6f 20 74 77 69 63 65 20 | don't d|o twice |
|00004820| 2a 2f 0d 09 09 7d 0d 09 | 09 65 6c 73 65 0d 09 09 |*/...}..|.else...|
|00004830| 20 20 20 20 63 6d 64 2d | 3e 63 5f 73 70 61 74 20 | cmd-|>c_spat |
|00004840| 3d 20 61 72 67 5b 32 5d | 2e 61 72 67 5f 70 74 72 |= arg[2]|.arg_ptr|
|00004850| 2e 61 72 67 5f 73 70 61 | 74 3b 0d 09 09 63 6d 64 |.arg_spa|t;...cmd|
|00004860| 2d 3e 63 5f 66 6c 61 67 | 73 20 7c 3d 20 73 75 72 |->c_flag|s |= sur|
|00004870| 65 3b 0d 09 20 20 20 20 | 7d 0d 09 7d 0d 20 20 20 |e;.. |}..}. |
|00004880| 20 7d 0d 20 20 20 20 65 | 6c 73 65 20 69 66 20 28 | }. e|lse if (|
|00004890| 61 72 67 2d 3e 61 72 67 | 5f 74 79 70 65 20 3d 3d |arg->arg|_type ==|
|000048a0| 20 4f 5f 53 45 51 20 7c | 7c 20 61 72 67 2d 3e 61 | O_SEQ ||| arg->a|
|000048b0| 72 67 5f 74 79 70 65 20 | 3d 3d 20 4f 5f 53 4e 45 |rg_type |== O_SNE|
|000048c0| 20 7c 7c 0d 09 20 20 20 | 20 20 61 72 67 2d 3e 61 | ||.. | arg->a|
|000048d0| 72 67 5f 74 79 70 65 20 | 3d 3d 20 4f 5f 53 4c 54 |rg_type |== O_SLT|
|000048e0| 20 7c 7c 20 61 72 67 2d | 3e 61 72 67 5f 74 79 70 | || arg-|>arg_typ|
|000048f0| 65 20 3d 3d 20 4f 5f 53 | 47 54 29 20 7b 0d 09 69 |e == O_S|GT) {..i|
|00004900| 66 20 28 61 72 67 5b 31 | 5d 2e 61 72 67 5f 74 79 |f (arg[1|].arg_ty|
|00004910| 70 65 20 3d 3d 20 41 5f | 53 54 41 42 20 7c 7c 20 |pe == A_|STAB || |
|00004920| 61 72 67 5b 31 5d 2e 61 | 72 67 5f 74 79 70 65 20 |arg[1].a|rg_type |
|00004930| 3d 3d 20 41 5f 4c 56 41 | 4c 29 20 7b 0d 09 20 20 |== A_LVA|L) {.. |
|00004940| 20 20 69 66 20 28 61 72 | 67 5b 32 5d 2e 61 72 67 | if (ar|g[2].arg|
|00004950| 5f 74 79 70 65 20 3d 3d | 20 41 5f 53 49 4e 47 4c |_type ==| A_SINGL|
|00004960| 45 29 20 7b 0d 09 09 2f | 2a 53 55 50 50 52 45 53 |E) {.../|*SUPPRES|
|00004970| 53 20 35 39 34 2a 2f 0d | 09 09 63 68 61 72 20 2a |S 594*/.|..char *|
|00004980| 6a 75 6e 6b 20 3d 20 73 | 74 72 5f 67 65 74 28 61 |junk = s|tr_get(a|
|00004990| 72 67 5b 32 5d 2e 61 72 | 67 5f 70 74 72 2e 61 72 |rg[2].ar|g_ptr.ar|
|000049a0| 67 5f 73 74 72 29 3b 0d | 0d 09 09 63 6d 64 2d 3e |g_str);.|...cmd->|
|000049b0| 63 5f 73 74 61 62 20 20 | 3d 20 61 72 67 5b 31 5d |c_stab |= arg[1]|
|000049c0| 2e 61 72 67 5f 70 74 72 | 2e 61 72 67 5f 73 74 61 |.arg_ptr|.arg_sta|
|000049d0| 62 3b 0d 09 09 63 6d 64 | 2d 3e 63 5f 73 68 6f 72 |b;...cmd|->c_shor|
|000049e0| 74 20 3d 20 73 74 72 5f | 73 6d 61 6b 65 28 61 72 |t = str_|smake(ar|
|000049f0| 67 5b 32 5d 2e 61 72 67 | 5f 70 74 72 2e 61 72 67 |g[2].arg|_ptr.arg|
|00004a00| 5f 73 74 72 29 3b 0d 09 | 09 63 6d 64 2d 3e 63 5f |_str);..|.cmd->c_|
|00004a10| 73 6c 65 6e 20 20 3d 20 | 63 6d 64 2d 3e 63 5f 73 |slen = |cmd->c_s|
|00004a20| 68 6f 72 74 2d 3e 73 74 | 72 5f 63 75 72 2b 31 3b |hort->st|r_cur+1;|
|00004a30| 0d 09 09 73 77 69 74 63 | 68 20 28 61 72 67 2d 3e |...switc|h (arg->|
|00004a40| 61 72 67 5f 74 79 70 65 | 29 20 7b 0d 09 09 63 61 |arg_type|) {...ca|
|00004a50| 73 65 20 4f 5f 53 4c 54 | 3a 20 63 61 73 65 20 4f |se O_SLT|: case O|
|00004a60| 5f 53 47 54 3a 0d 09 09 | 20 20 20 20 73 75 72 65 |_SGT:...| sure|
|00004a70| 20 7c 3d 20 43 46 5f 45 | 51 53 55 52 45 3b 0d 09 | |= CF_E|QSURE;..|
|00004a80| 09 20 20 20 20 63 6d 64 | 2d 3e 63 5f 66 6c 61 67 |. cmd|->c_flag|
|00004a90| 73 20 7c 3d 20 43 46 5f | 46 49 52 53 54 4e 45 47 |s |= CF_|FIRSTNEG|
|00004aa0| 3b 0d 09 09 20 20 20 20 | 62 72 65 61 6b 3b 0d 09 |;... |break;..|
|00004ab0| 09 63 61 73 65 20 4f 5f | 53 4e 45 3a 0d 09 09 20 |.case O_|SNE:... |
|00004ac0| 20 20 20 63 6d 64 2d 3e | 63 5f 66 6c 61 67 73 20 | cmd->|c_flags |
|00004ad0| 7c 3d 20 43 46 5f 46 49 | 52 53 54 4e 45 47 3b 0d ||= CF_FI|RSTNEG;.|
|00004ae0| 09 09 20 20 20 20 2f 2a | 20 46 41 4c 4c 20 54 48 |.. /*| FALL TH|
|00004af0| 52 4f 55 47 48 20 2a 2f | 0d 09 09 63 61 73 65 20 |ROUGH */|...case |
|00004b00| 4f 5f 53 45 51 3a 0d 09 | 09 20 20 20 20 73 75 72 |O_SEQ:..|. sur|
|00004b10| 65 20 7c 3d 20 43 46 5f | 4e 45 53 55 52 45 7c 43 |e |= CF_|NESURE|C|
|00004b20| 46 5f 45 51 53 55 52 45 | 3b 0d 09 09 20 20 20 20 |F_EQSURE|;... |
|00004b30| 62 72 65 61 6b 3b 0d 09 | 09 7d 0d 09 09 69 66 20 |break;..|.}...if |
|00004b40| 28 63 6f 6e 74 65 78 74 | 20 26 20 31 29 20 7b 09 |(context| & 1) {.|
|00004b50| 2f 2a 20 6f 6e 6c 79 20 | 73 75 72 65 20 69 66 20 |/* only |sure if |
|00004b60| 74 68 69 6e 67 20 69 73 | 20 66 61 6c 73 65 20 2a |thing is| false *|
|00004b70| 2f 0d 09 09 20 20 20 20 | 69 66 20 28 63 6d 64 2d |/... |if (cmd-|
|00004b80| 3e 63 5f 66 6c 61 67 73 | 20 26 20 43 46 5f 46 49 |>c_flags| & CF_FI|
|00004b90| 52 53 54 4e 45 47 29 0d | 09 09 09 73 75 72 65 20 |RSTNEG).|...sure |
|00004ba0| 26 3d 20 7e 43 46 5f 4e | 45 53 55 52 45 3b 0d 09 |&= ~CF_N|ESURE;..|
|00004bb0| 09 20 20 20 20 65 6c 73 | 65 0d 09 09 09 73 75 72 |. els|e....sur|
|00004bc0| 65 20 26 3d 20 7e 43 46 | 5f 45 51 53 55 52 45 3b |e &= ~CF|_EQSURE;|
|00004bd0| 0d 09 09 7d 0d 09 09 65 | 6c 73 65 20 69 66 20 28 |...}...e|lse if (|
|00004be0| 63 6f 6e 74 65 78 74 20 | 26 20 32 29 20 7b 20 2f |context |& 2) { /|
|00004bf0| 2a 20 6f 6e 6c 79 20 73 | 75 72 65 20 69 66 20 74 |* only s|ure if t|
|00004c00| 68 69 6e 67 20 69 73 20 | 74 72 75 65 20 2a 2f 0d |hing is |true */.|
|00004c10| 09 09 20 20 20 20 69 66 | 20 28 63 6d 64 2d 3e 63 |.. if| (cmd->c|
|00004c20| 5f 66 6c 61 67 73 20 26 | 20 43 46 5f 46 49 52 53 |_flags &| CF_FIRS|
|00004c30| 54 4e 45 47 29 0d 09 09 | 09 73 75 72 65 20 26 3d |TNEG)...|.sure &=|
|00004c40| 20 7e 43 46 5f 45 51 53 | 55 52 45 3b 0d 09 09 20 | ~CF_EQS|URE;... |
|00004c50| 20 20 20 65 6c 73 65 0d | 09 09 09 73 75 72 65 20 | else.|...sure |
|00004c60| 26 3d 20 7e 43 46 5f 4e | 45 53 55 52 45 3b 0d 09 |&= ~CF_N|ESURE;..|
|00004c70| 09 7d 0d 09 09 69 66 20 | 28 73 75 72 65 20 26 20 |.}...if |(sure & |
|00004c80| 28 43 46 5f 45 51 53 55 | 52 45 7c 43 46 5f 4e 45 |(CF_EQSU|RE|CF_NE|
|00004c90| 53 55 52 45 29 29 20 7b | 0d 09 09 20 20 20 20 6f |SURE)) {|... o|
|00004ca0| 70 74 20 3d 20 43 46 54 | 5f 53 54 52 4f 50 3b 0d |pt = CFT|_STROP;.|
|00004cb0| 09 09 20 20 20 20 63 6d | 64 2d 3e 63 5f 66 6c 61 |.. cm|d->c_fla|
|00004cc0| 67 73 20 7c 3d 20 73 75 | 72 65 3b 0d 09 09 7d 0d |gs |= su|re;...}.|
|00004cd0| 09 20 20 20 20 7d 0d 09 | 7d 0d 20 20 20 20 7d 0d |. }..|}. }.|
|00004ce0| 20 20 20 20 65 6c 73 65 | 20 69 66 20 28 61 72 67 | else| if (arg|
|00004cf0| 2d 3e 61 72 67 5f 74 79 | 70 65 20 3d 3d 20 4f 5f |->arg_ty|pe == O_|
|00004d00| 45 51 20 7c 7c 20 61 72 | 67 2d 3e 61 72 67 5f 74 |EQ || ar|g->arg_t|
|00004d10| 79 70 65 20 3d 3d 20 4f | 5f 4e 45 20 7c 7c 0d 09 |ype == O|_NE ||..|
|00004d20| 20 20 20 20 20 61 72 67 | 2d 3e 61 72 67 5f 74 79 | arg|->arg_ty|
|00004d30| 70 65 20 3d 3d 20 4f 5f | 4c 45 20 7c 7c 20 61 72 |pe == O_|LE || ar|
|00004d40| 67 2d 3e 61 72 67 5f 74 | 79 70 65 20 3d 3d 20 4f |g->arg_t|ype == O|
|00004d50| 5f 47 45 20 7c 7c 0d 09 | 20 20 20 20 20 61 72 67 |_GE ||..| arg|
|00004d60| 2d 3e 61 72 67 5f 74 79 | 70 65 20 3d 3d 20 4f 5f |->arg_ty|pe == O_|
|00004d70| 4c 54 20 7c 7c 20 61 72 | 67 2d 3e 61 72 67 5f 74 |LT || ar|g->arg_t|
|00004d80| 79 70 65 20 3d 3d 20 4f | 5f 47 54 29 20 7b 0d 09 |ype == O|_GT) {..|
|00004d90| 69 66 20 28 61 72 67 5b | 31 5d 2e 61 72 67 5f 74 |if (arg[|1].arg_t|
|00004da0| 79 70 65 20 3d 3d 20 41 | 5f 53 54 41 42 20 7c 7c |ype == A|_STAB |||
|00004db0| 20 61 72 67 5b 31 5d 2e | 61 72 67 5f 74 79 70 65 | arg[1].|arg_type|
|00004dc0| 20 3d 3d 20 41 5f 4c 56 | 41 4c 29 20 7b 0d 09 20 | == A_LV|AL) {.. |
|00004dd0| 20 20 20 69 66 20 28 61 | 72 67 5b 32 5d 2e 61 72 | if (a|rg[2].ar|
|00004de0| 67 5f 74 79 70 65 20 3d | 3d 20 41 5f 53 49 4e 47 |g_type =|= A_SING|
|00004df0| 4c 45 29 20 7b 0d 09 09 | 63 6d 64 2d 3e 63 5f 73 |LE) {...|cmd->c_s|
|00004e00| 74 61 62 20 20 3d 20 61 | 72 67 5b 31 5d 2e 61 72 |tab = a|rg[1].ar|
|00004e10| 67 5f 70 74 72 2e 61 72 | 67 5f 73 74 61 62 3b 0d |g_ptr.ar|g_stab;.|
|00004e20| 09 09 69 66 20 28 64 6f | 77 61 72 6e 29 20 7b 0d |..if (do|warn) {.|
|00004e30| 09 09 20 20 20 20 53 54 | 52 20 2a 73 74 72 20 3d |.. ST|R *str =|
|00004e40| 20 61 72 67 5b 32 5d 2e | 61 72 67 5f 70 74 72 2e | arg[2].|arg_ptr.|
|00004e50| 61 72 67 5f 73 74 72 3b | 0d 0d 09 09 20 20 20 20 |arg_str;|.... |
|00004e60| 69 66 20 28 28 21 73 74 | 72 2d 3e 73 74 72 5f 6e |if ((!st|r->str_n|
|00004e70| 6f 6b 20 26 26 20 21 6c | 6f 6f 6b 73 5f 6c 69 6b |ok && !l|ooks_lik|
|00004e80| 65 5f 6e 75 6d 62 65 72 | 28 73 74 72 29 29 29 0d |e_number|(str))).|
|00004e90| 09 09 09 77 61 72 6e 28 | 22 50 6f 73 73 69 62 6c |...warn(|"Possibl|
|00004ea0| 65 20 75 73 65 20 6f 66 | 20 3d 3d 20 6f 6e 20 73 |e use of| == on s|
|00004eb0| 74 72 69 6e 67 20 76 61 | 6c 75 65 22 29 3b 0d 09 |tring va|lue");..|
|00004ec0| 09 7d 0d 09 09 63 6d 64 | 2d 3e 63 5f 73 68 6f 72 |.}...cmd|->c_shor|
|00004ed0| 74 20 3d 20 73 74 72 5f | 6e 6d 61 6b 65 28 73 74 |t = str_|nmake(st|
|00004ee0| 72 5f 67 6e 75 6d 28 61 | 72 67 5b 32 5d 2e 61 72 |r_gnum(a|rg[2].ar|
|00004ef0| 67 5f 70 74 72 2e 61 72 | 67 5f 73 74 72 29 29 3b |g_ptr.ar|g_str));|
|00004f00| 0d 09 09 63 6d 64 2d 3e | 63 5f 73 6c 65 6e 20 3d |...cmd->|c_slen =|
|00004f10| 20 61 72 67 2d 3e 61 72 | 67 5f 74 79 70 65 3b 0d | arg->ar|g_type;.|
|00004f20| 09 09 73 75 72 65 20 7c | 3d 20 43 46 5f 4e 45 53 |..sure ||= CF_NES|
|00004f30| 55 52 45 7c 43 46 5f 45 | 51 53 55 52 45 3b 0d 09 |URE|CF_E|QSURE;..|
|00004f40| 09 69 66 20 28 63 6f 6e | 74 65 78 74 20 26 20 31 |.if (con|text & 1|
|00004f50| 29 20 7b 09 2f 2a 20 6f | 6e 6c 79 20 73 75 72 65 |) {./* o|nly sure|
|00004f60| 20 69 66 20 74 68 69 6e | 67 20 69 73 20 66 61 6c | if thin|g is fal|
|00004f70| 73 65 20 2a 2f 0d 09 09 | 20 20 20 20 73 75 72 65 |se */...| sure|
|00004f80| 20 26 3d 20 7e 43 46 5f | 45 51 53 55 52 45 3b 0d | &= ~CF_|EQSURE;.|
|00004f90| 09 09 7d 0d 09 09 65 6c | 73 65 20 69 66 20 28 63 |..}...el|se if (c|
|00004fa0| 6f 6e 74 65 78 74 20 26 | 20 32 29 20 7b 20 2f 2a |ontext &| 2) { /*|
|00004fb0| 20 6f 6e 6c 79 20 73 75 | 72 65 20 69 66 20 74 68 | only su|re if th|
|00004fc0| 69 6e 67 20 69 73 20 74 | 72 75 65 20 2a 2f 0d 09 |ing is t|rue */..|
|00004fd0| 09 20 20 20 20 73 75 72 | 65 20 26 3d 20 7e 43 46 |. sur|e &= ~CF|
|00004fe0| 5f 4e 45 53 55 52 45 3b | 0d 09 09 7d 0d 09 09 69 |_NESURE;|...}...i|
|00004ff0| 66 20 28 73 75 72 65 20 | 26 20 28 43 46 5f 45 51 |f (sure |& (CF_EQ|
|00005000| 53 55 52 45 7c 43 46 5f | 4e 45 53 55 52 45 29 29 |SURE|CF_|NESURE))|
|00005010| 20 7b 0d 09 09 20 20 20 | 20 6f 70 74 20 3d 20 43 | {... | opt = C|
|00005020| 46 54 5f 4e 55 4d 4f 50 | 3b 0d 09 09 20 20 20 20 |FT_NUMOP|;... |
|00005030| 63 6d 64 2d 3e 63 5f 66 | 6c 61 67 73 20 7c 3d 20 |cmd->c_f|lags |= |
|00005040| 73 75 72 65 3b 0d 09 09 | 7d 0d 09 20 20 20 20 7d |sure;...|}.. }|
|00005050| 0d 09 7d 0d 20 20 20 20 | 7d 0d 20 20 20 20 65 6c |..}. |}. el|
|00005060| 73 65 20 69 66 20 28 61 | 72 67 2d 3e 61 72 67 5f |se if (a|rg->arg_|
|00005070| 74 79 70 65 20 3d 3d 20 | 4f 5f 41 53 53 49 47 4e |type == |O_ASSIGN|
|00005080| 20 26 26 0d 09 20 20 20 | 20 20 28 61 72 67 5b 31 | &&.. | (arg[1|
|00005090| 5d 2e 61 72 67 5f 74 79 | 70 65 20 3d 3d 20 41 5f |].arg_ty|pe == A_|
|000050a0| 53 54 41 42 20 7c 7c 20 | 61 72 67 5b 31 5d 2e 61 |STAB || |arg[1].a|
|000050b0| 72 67 5f 74 79 70 65 20 | 3d 3d 20 41 5f 4c 56 41 |rg_type |== A_LVA|
|000050c0| 4c 29 20 26 26 0d 09 20 | 20 20 20 20 61 72 67 5b |L) &&.. | arg[|
|000050d0| 31 5d 2e 61 72 67 5f 70 | 74 72 2e 61 72 67 5f 73 |1].arg_p|tr.arg_s|
|000050e0| 74 61 62 20 3d 3d 20 64 | 65 66 73 74 61 62 20 26 |tab == d|efstab &|
|000050f0| 26 0d 09 20 20 20 20 20 | 61 72 67 5b 32 5d 2e 61 |&.. |arg[2].a|
|00005100| 72 67 5f 74 79 70 65 20 | 3d 3d 20 41 5f 45 58 50 |rg_type |== A_EXP|
|00005110| 52 20 29 20 7b 0d 09 61 | 72 67 32 20 3d 20 61 72 |R ) {..a|rg2 = ar|
|00005120| 67 5b 32 5d 2e 61 72 67 | 5f 70 74 72 2e 61 72 67 |g[2].arg|_ptr.arg|
|00005130| 5f 61 72 67 3b 0d 09 69 | 66 20 28 61 72 67 32 2d |_arg;..i|f (arg2-|
|00005140| 3e 61 72 67 5f 74 79 70 | 65 20 3d 3d 20 4f 5f 49 |>arg_typ|e == O_I|
|00005150| 54 45 4d 20 26 26 20 61 | 72 67 32 5b 31 5d 2e 61 |TEM && a|rg2[1].a|
|00005160| 72 67 5f 74 79 70 65 20 | 3d 3d 20 41 5f 52 45 41 |rg_type |== A_REA|
|00005170| 44 29 20 7b 0d 09 20 20 | 20 20 6f 70 74 20 3d 20 |D) {.. | opt = |
|00005180| 43 46 54 5f 47 45 54 53 | 3b 0d 09 20 20 20 20 63 |CFT_GETS|;.. c|
|00005190| 6d 64 2d 3e 63 5f 73 74 | 61 62 20 3d 20 61 72 67 |md->c_st|ab = arg|
|000051a0| 32 5b 31 5d 2e 61 72 67 | 5f 70 74 72 2e 61 72 67 |2[1].arg|_ptr.arg|
|000051b0| 5f 73 74 61 62 3b 0d 09 | 20 20 20 20 69 66 20 28 |_stab;..| if (|
|000051c0| 21 28 73 74 61 62 5f 69 | 6f 28 61 72 67 32 5b 31 |!(stab_i|o(arg2[1|
|000051d0| 5d 2e 61 72 67 5f 70 74 | 72 2e 61 72 67 5f 73 74 |].arg_pt|r.arg_st|
|000051e0| 61 62 29 2d 3e 66 6c 61 | 67 73 20 26 20 49 4f 46 |ab)->fla|gs & IOF|
|000051f0| 5f 41 52 47 56 29 29 20 | 7b 0d 09 09 66 72 65 65 |_ARGV)) |{...free|
|00005200| 5f 61 72 67 28 61 72 67 | 32 29 3b 0d 09 09 61 72 |_arg(arg|2);...ar|
|00005210| 67 5b 32 5d 2e 61 72 67 | 5f 70 74 72 2e 61 72 67 |g[2].arg|_ptr.arg|
|00005220| 5f 61 72 67 20 3d 20 4e | 75 6c 6c 61 72 67 3b 0d |_arg = N|ullarg;.|
|00005230| 09 09 66 72 65 65 5f 61 | 72 67 28 61 72 67 29 3b |..free_a|rg(arg);|
|00005240| 0d 09 09 63 6d 64 2d 3e | 63 5f 65 78 70 72 20 3d |...cmd->|c_expr =|
|00005250| 20 4e 75 6c 6c 61 72 67 | 3b 0d 09 20 20 20 20 7d | Nullarg|;.. }|
|00005260| 0d 09 7d 0d 20 20 20 20 | 7d 0d 20 20 20 20 65 6c |..}. |}. el|
|00005270| 73 65 20 69 66 20 28 61 | 72 67 2d 3e 61 72 67 5f |se if (a|rg->arg_|
|00005280| 74 79 70 65 20 3d 3d 20 | 4f 5f 43 48 4f 50 20 26 |type == |O_CHOP &|
|00005290| 26 0d 09 20 20 20 20 20 | 28 61 72 67 5b 31 5d 2e |&.. |(arg[1].|
|000052a0| 61 72 67 5f 74 79 70 65 | 20 3d 3d 20 41 5f 53 54 |arg_type| == A_ST|
|000052b0| 41 42 20 7c 7c 20 61 72 | 67 5b 31 5d 2e 61 72 67 |AB || ar|g[1].arg|
|000052c0| 5f 74 79 70 65 20 3d 3d | 20 41 5f 4c 56 41 4c 29 |_type ==| A_LVAL)|
|000052d0| 20 29 20 7b 0d 09 6f 70 | 74 20 3d 20 43 46 54 5f | ) {..op|t = CFT_|
|000052e0| 43 48 4f 50 3b 0d 09 63 | 6d 64 2d 3e 63 5f 73 74 |CHOP;..c|md->c_st|
|000052f0| 61 62 20 3d 20 61 72 67 | 5b 31 5d 2e 61 72 67 5f |ab = arg|[1].arg_|
|00005300| 70 74 72 2e 61 72 67 5f | 73 74 61 62 3b 0d 09 66 |ptr.arg_|stab;..f|
|00005310| 72 65 65 5f 61 72 67 28 | 61 72 67 29 3b 0d 09 63 |ree_arg(|arg);..c|
|00005320| 6d 64 2d 3e 63 5f 65 78 | 70 72 20 3d 20 4e 75 6c |md->c_ex|pr = Nul|
|00005330| 6c 61 72 67 3b 0d 20 20 | 20 20 7d 0d 20 20 20 20 |larg;. | }. |
|00005340| 69 66 20 28 63 6f 6e 74 | 65 78 74 20 26 20 34 29 |if (cont|ext & 4)|
|00005350| 0d 09 6f 70 74 20 7c 3d | 20 43 46 5f 46 4c 49 50 |..opt |=| CF_FLIP|
|00005360| 3b 0d 20 20 20 20 63 6d | 64 2d 3e 63 5f 66 6c 61 |;. cm|d->c_fla|
|00005370| 67 73 20 7c 3d 20 6f 70 | 74 3b 0d 0d 20 20 20 20 |gs |= op|t;.. |
|00005380| 69 66 20 28 63 6d 64 2d | 3e 63 5f 66 6c 61 67 73 |if (cmd-|>c_flags|
|00005390| 20 26 20 43 46 5f 46 4c | 49 50 29 20 7b 0d 09 69 | & CF_FL|IP) {..i|
|000053a0| 66 20 28 66 6c 69 70 6f | 72 66 6c 6f 70 20 3d 3d |f (flipo|rflop ==|
|000053b0| 20 31 29 20 7b 0d 09 20 | 20 20 20 61 72 67 20 3d | 1) {.. | arg =|
|000053c0| 20 63 6d 64 2d 3e 63 5f | 65 78 70 72 3b 09 2f 2a | cmd->c_|expr;./*|
|000053d0| 20 67 65 74 20 62 61 63 | 6b 20 74 6f 20 4f 5f 46 | get bac|k to O_F|
|000053e0| 4c 49 50 20 61 72 67 20 | 2a 2f 0d 09 20 20 20 20 |LIP arg |*/.. |
|000053f0| 4e 65 77 28 31 31 30 2c | 61 72 67 5b 33 5d 2e 61 |New(110,|arg[3].a|
|00005400| 72 67 5f 70 74 72 2e 61 | 72 67 5f 63 6d 64 2c 20 |rg_ptr.a|rg_cmd, |
|00005410| 31 2c 20 43 4d 44 29 3b | 0d 09 20 20 20 20 43 6f |1, CMD);|.. Co|
|00005420| 70 79 28 63 6d 64 2c 20 | 61 72 67 5b 33 5d 2e 61 |py(cmd, |arg[3].a|
|00005430| 72 67 5f 70 74 72 2e 61 | 72 67 5f 63 6d 64 2c 20 |rg_ptr.a|rg_cmd, |
|00005440| 31 2c 20 43 4d 44 29 3b | 0d 09 20 20 20 20 4e 65 |1, CMD);|.. Ne|
|00005450| 77 28 31 31 31 2c 61 72 | 67 5b 34 5d 2e 61 72 67 |w(111,ar|g[4].arg|
|00005460| 5f 70 74 72 2e 61 72 67 | 5f 63 6d 64 2c 31 2c 43 |_ptr.arg|_cmd,1,C|
|00005470| 4d 44 29 3b 0d 09 20 20 | 20 20 43 6f 70 79 28 63 |MD);.. | Copy(c|
|00005480| 6d 64 2c 20 61 72 67 5b | 34 5d 2e 61 72 67 5f 70 |md, arg[|4].arg_p|
|00005490| 74 72 2e 61 72 67 5f 63 | 6d 64 2c 20 31 2c 20 43 |tr.arg_c|md, 1, C|
|000054a0| 4d 44 29 3b 0d 09 20 20 | 20 20 6f 70 74 5f 61 72 |MD);.. | opt_ar|
|000054b0| 67 28 61 72 67 5b 34 5d | 2e 61 72 67 5f 70 74 72 |g(arg[4]|.arg_ptr|
|000054c0| 2e 61 72 67 5f 63 6d 64 | 2c 32 2c 61 63 6d 64 29 |.arg_cmd|,2,acmd)|
|000054d0| 3b 0d 09 20 20 20 20 61 | 72 67 2d 3e 61 72 67 5f |;.. a|rg->arg_|
|000054e0| 6c 65 6e 20 3d 20 32 3b | 09 09 2f 2a 20 74 68 69 |len = 2;|../* thi|
|000054f0| 73 20 69 73 20 61 20 6c | 69 65 20 2a 2f 0d 09 7d |s is a l|ie */..}|
|00005500| 0d 09 65 6c 73 65 20 7b | 0d 09 20 20 20 20 69 66 |..else {|.. if|
|00005510| 20 28 28 6f 70 74 20 26 | 20 43 46 5f 4f 50 54 49 | ((opt &| CF_OPTI|
|00005520| 4d 49 5a 45 29 20 3d 3d | 20 43 46 54 5f 45 56 41 |MIZE) ==| CFT_EVA|
|00005530| 4c 29 0d 09 09 63 6d 64 | 2d 3e 63 5f 66 6c 61 67 |L)...cmd|->c_flag|
|00005540| 73 20 3d 20 28 63 6d 64 | 2d 3e 63 5f 66 6c 61 67 |s = (cmd|->c_flag|
|00005550| 73 20 26 20 7e 43 46 5f | 4f 50 54 49 4d 49 5a 45 |s & ~CF_|OPTIMIZE|
|00005560| 29 20 7c 20 43 46 54 5f | 55 4e 46 4c 49 50 3b 0d |) | CFT_|UNFLIP;.|
|00005570| 09 7d 0d 20 20 20 20 7d | 0d 7d 0d 0d 43 4d 44 20 |.}. }|.}..CMD |
|00005580| 2a 0d 61 64 64 5f 6c 61 | 62 65 6c 28 6c 62 6c 2c |*.add_la|bel(lbl,|
|00005590| 63 6d 64 29 0d 63 68 61 | 72 20 2a 6c 62 6c 3b 0d |cmd).cha|r *lbl;.|
|000055a0| 72 65 67 69 73 74 65 72 | 20 43 4d 44 20 2a 63 6d |register| CMD *cm|
|000055b0| 64 3b 0d 7b 0d 20 20 20 | 20 69 66 20 28 63 6d 64 |d;.{. | if (cmd|
|000055c0| 29 0d 09 63 6d 64 2d 3e | 63 5f 6c 61 62 65 6c 20 |)..cmd->|c_label |
|000055d0| 3d 20 6c 62 6c 3b 0d 20 | 20 20 20 72 65 74 75 72 |= lbl;. | retur|
|000055e0| 6e 20 63 6d 64 3b 0d 7d | 0d 0d 43 4d 44 20 2a 0d |n cmd;.}|..CMD *.|
|000055f0| 61 64 64 63 6f 6e 64 28 | 63 6d 64 2c 20 61 72 67 |addcond(|cmd, arg|
|00005600| 29 0d 72 65 67 69 73 74 | 65 72 20 43 4d 44 20 2a |).regist|er CMD *|
|00005610| 63 6d 64 3b 0d 72 65 67 | 69 73 74 65 72 20 41 52 |cmd;.reg|ister AR|
|00005620| 47 20 2a 61 72 67 3b 0d | 7b 0d 20 20 20 20 63 6d |G *arg;.|{. cm|
|00005630| 64 2d 3e 63 5f 65 78 70 | 72 20 3d 20 61 72 67 3b |d->c_exp|r = arg;|
|00005640| 0d 20 20 20 20 63 6d 64 | 2d 3e 63 5f 66 6c 61 67 |. cmd|->c_flag|
|00005650| 73 20 7c 3d 20 43 46 5f | 43 4f 4e 44 3b 0d 20 20 |s |= CF_|COND;. |
|00005660| 20 20 72 65 74 75 72 6e | 20 63 6d 64 3b 0d 7d 0d | return| cmd;.}.|
|00005670| 0d 43 4d 44 20 2a 0d 61 | 64 64 6c 6f 6f 70 28 63 |.CMD *.a|ddloop(c|
|00005680| 6d 64 2c 20 61 72 67 29 | 0d 72 65 67 69 73 74 65 |md, arg)|.registe|
|00005690| 72 20 43 4d 44 20 2a 63 | 6d 64 3b 0d 72 65 67 69 |r CMD *c|md;.regi|
|000056a0| 73 74 65 72 20 41 52 47 | 20 2a 61 72 67 3b 0d 7b |ster ARG| *arg;.{|
|000056b0| 0d 20 20 20 20 76 6f 69 | 64 20 77 68 69 6c 65 5f |. voi|d while_|
|000056c0| 69 6f 28 29 3b 0d 0d 20 | 20 20 20 63 6d 64 2d 3e |io();.. | cmd->|
|000056d0| 63 5f 65 78 70 72 20 3d | 20 61 72 67 3b 0d 20 20 |c_expr =| arg;. |
|000056e0| 20 20 63 6d 64 2d 3e 63 | 5f 66 6c 61 67 73 20 7c | cmd->c|_flags ||
|000056f0| 3d 20 43 46 5f 43 4f 4e | 44 7c 43 46 5f 4c 4f 4f |= CF_CON|D|CF_LOO|
|00005700| 50 3b 0d 0d 20 20 20 20 | 69 66 20 28 21 28 63 6d |P;.. |if (!(cm|
|00005710| 64 2d 3e 63 5f 66 6c 61 | 67 73 20 26 20 43 46 5f |d->c_fla|gs & CF_|
|00005720| 49 4e 56 45 52 54 29 29 | 0d 09 77 68 69 6c 65 5f |INVERT))|..while_|
|00005730| 69 6f 28 63 6d 64 29 3b | 09 09 2f 2a 20 61 64 64 |io(cmd);|../* add|
|00005740| 20 24 5f 20 3d 2c 20 69 | 66 20 6e 65 63 65 73 73 | $_ =, i|f necess|
|00005750| 61 72 79 20 2a 2f 0d 0d | 20 20 20 20 69 66 20 28 |ary */..| if (|
|00005760| 63 6d 64 2d 3e 63 5f 74 | 79 70 65 20 3d 3d 20 43 |cmd->c_t|ype == C|
|00005770| 5f 42 4c 4f 43 4b 29 0d | 09 63 6d 64 2d 3e 63 5f |_BLOCK).|.cmd->c_|
|00005780| 66 6c 61 67 73 20 26 3d | 20 7e 43 46 5f 43 4f 4e |flags &=| ~CF_CON|
|00005790| 44 3b 0d 20 20 20 20 65 | 6c 73 65 20 7b 0d 09 61 |D;. e|lse {..a|
|000057a0| 72 67 20 3d 20 63 6d 64 | 2d 3e 75 63 6d 64 2e 61 |rg = cmd|->ucmd.a|
|000057b0| 63 6d 64 2e 61 63 5f 65 | 78 70 72 3b 0d 09 69 66 |cmd.ac_e|xpr;..if|
|000057c0| 20 28 61 72 67 20 26 26 | 20 61 72 67 2d 3e 61 72 | (arg &&| arg->ar|
|000057d0| 67 5f 74 79 70 65 20 3d | 3d 20 4f 5f 49 54 45 4d |g_type =|= O_ITEM|
|000057e0| 20 26 26 20 61 72 67 5b | 31 5d 2e 61 72 67 5f 74 | && arg[|1].arg_t|
|000057f0| 79 70 65 20 3d 3d 20 41 | 5f 43 4d 44 29 0d 09 20 |ype == A|_CMD).. |
|00005800| 20 20 20 63 6d 64 2d 3e | 63 5f 66 6c 61 67 73 20 | cmd->|c_flags |
|00005810| 26 3d 20 7e 43 46 5f 43 | 4f 4e 44 3b 20 20 2f 2a |&= ~CF_C|OND; /*|
|00005820| 20 22 64 6f 20 7b 7d 20 | 77 68 69 6c 65 22 20 68 | "do {} |while" h|
|00005830| 61 70 70 65 6e 73 20 61 | 74 20 6c 65 61 73 74 20 |appens a|t least |
|00005840| 6f 6e 63 65 20 2a 2f 0d | 09 69 66 20 28 61 72 67 |once */.|.if (arg|
|00005850| 20 26 26 20 28 61 72 67 | 2d 3e 61 72 67 5f 66 6c | && (arg|->arg_fl|
|00005860| 61 67 73 20 26 20 41 46 | 5f 44 45 50 52 29 20 26 |ags & AF|_DEPR) &|
|00005870| 26 0d 09 20 20 28 61 72 | 67 2d 3e 61 72 67 5f 74 |&.. (ar|g->arg_t|
|00005880| 79 70 65 20 3d 3d 20 4f | 5f 53 55 42 52 20 7c 7c |ype == O|_SUBR |||
|00005890| 20 61 72 67 2d 3e 61 72 | 67 5f 74 79 70 65 20 3d | arg->ar|g_type =|
|000058a0| 3d 20 4f 5f 44 42 53 55 | 42 52 29 20 29 0d 09 20 |= O_DBSU|BR) ).. |
|000058b0| 20 20 20 63 6d 64 2d 3e | 63 5f 66 6c 61 67 73 20 | cmd->|c_flags |
|000058c0| 26 3d 20 7e 43 46 5f 43 | 4f 4e 44 3b 20 20 2f 2a |&= ~CF_C|OND; /*|
|000058d0| 20 6c 69 6b 65 77 69 73 | 65 20 66 6f 72 20 22 64 | likewis|e for "d|
|000058e0| 6f 20 73 75 62 72 28 29 | 20 77 68 69 6c 65 22 20 |o subr()| while" |
|000058f0| 2a 2f 0d 20 20 20 20 7d | 0d 20 20 20 20 72 65 74 |*/. }|. ret|
|00005900| 75 72 6e 20 63 6d 64 3b | 0d 7d 0d 0d 43 4d 44 20 |urn cmd;|.}..CMD |
|00005910| 2a 0d 69 6e 76 65 72 74 | 28 63 6d 64 29 0d 43 4d |*.invert|(cmd).CM|
|00005920| 44 20 2a 63 6d 64 3b 0d | 7b 0d 20 20 20 20 72 65 |D *cmd;.|{. re|
|00005930| 67 69 73 74 65 72 20 43 | 4d 44 20 2a 74 61 72 67 |gister C|MD *targ|
|00005940| 20 3d 20 63 6d 64 3b 0d | 20 20 20 20 69 66 20 28 | = cmd;.| if (|
|00005950| 74 61 72 67 2d 3e 63 5f | 68 65 61 64 29 0d 09 74 |targ->c_|head)..t|
|00005960| 61 72 67 20 3d 20 74 61 | 72 67 2d 3e 63 5f 68 65 |arg = ta|rg->c_he|
|00005970| 61 64 3b 0d 20 20 20 20 | 69 66 20 28 74 61 72 67 |ad;. |if (targ|
|00005980| 2d 3e 63 5f 66 6c 61 67 | 73 20 26 20 43 46 5f 44 |->c_flag|s & CF_D|
|00005990| 42 53 55 42 29 0d 09 74 | 61 72 67 20 3d 20 74 61 |BSUB)..t|arg = ta|
|000059a0| 72 67 2d 3e 63 5f 6e 65 | 78 74 3b 0d 20 20 20 20 |rg->c_ne|xt;. |
|000059b0| 74 61 72 67 2d 3e 63 5f | 66 6c 61 67 73 20 5e 3d |targ->c_|flags ^=|
|000059c0| 20 43 46 5f 49 4e 56 45 | 52 54 3b 0d 20 20 20 20 | CF_INVE|RT;. |
|000059d0| 72 65 74 75 72 6e 20 63 | 6d 64 3b 0d 7d 0d 0d 76 |return c|md;.}..v|
|000059e0| 6f 69 64 0d 63 70 79 37 | 62 69 74 28 64 2c 73 2c |oid.cpy7|bit(d,s,|
|000059f0| 6c 29 0d 72 65 67 69 73 | 74 65 72 20 63 68 61 72 |l).regis|ter char|
|00005a00| 20 2a 64 3b 0d 72 65 67 | 69 73 74 65 72 20 63 68 | *d;.reg|ister ch|
|00005a10| 61 72 20 2a 73 3b 0d 72 | 65 67 69 73 74 65 72 20 |ar *s;.r|egister |
|00005a20| 69 6e 74 20 6c 3b 0d 7b | 0d 20 20 20 20 77 68 69 |int l;.{|. whi|
|00005a30| 6c 65 20 28 6c 2d 2d 29 | 0d 09 2a 64 2b 2b 20 3d |le (l--)|..*d++ =|
|00005a40| 20 2a 73 2b 2b 20 26 20 | 31 32 37 3b 0d 20 20 20 | *s++ & |127;. |
|00005a50| 20 2a 64 20 3d 20 27 5c | 30 27 3b 0d 7d 0d 0d 69 | *d = '\|0';.}..i|
|00005a60| 6e 74 0d 79 79 65 72 72 | 6f 72 28 73 29 0d 63 68 |nt.yyerr|or(s).ch|
|00005a70| 61 72 20 2a 73 3b 0d 7b | 0d 20 20 20 20 63 68 61 |ar *s;.{|. cha|
|00005a80| 72 20 74 6d 70 62 75 66 | 5b 32 35 38 5d 3b 0d 20 |r tmpbuf|[258];. |
|00005a90| 20 20 20 63 68 61 72 20 | 74 6d 70 32 62 75 66 5b | char |tmp2buf[|
|00005aa0| 32 35 38 5d 3b 0d 20 20 | 20 20 63 68 61 72 20 2a |258];. | char *|
|00005ab0| 74 6e 61 6d 65 20 3d 20 | 74 6d 70 62 75 66 3b 0d |tname = |tmpbuf;.|
|00005ac0| 0d 20 20 20 20 69 66 20 | 28 62 75 66 70 74 72 20 |. if |(bufptr |
|00005ad0| 3e 20 6f 6c 64 6f 6c 64 | 62 75 66 70 74 72 20 26 |> oldold|bufptr &|
|00005ae0| 26 20 62 75 66 70 74 72 | 20 2d 20 6f 6c 64 6f 6c |& bufptr| - oldol|
|00005af0| 64 62 75 66 70 74 72 20 | 3c 20 32 30 30 20 26 26 |dbufptr |< 200 &&|
|00005b00| 0d 20 20 20 20 20 20 6f | 6c 64 6f 6c 64 62 75 66 |. o|ldoldbuf|
|00005b10| 70 74 72 20 21 3d 20 6f | 6c 64 62 75 66 70 74 72 |ptr != o|ldbufptr|
|00005b20| 20 26 26 20 6f 6c 64 62 | 75 66 70 74 72 20 21 3d | && oldb|ufptr !=|
|00005b30| 20 62 75 66 70 74 72 29 | 20 7b 0d 09 77 68 69 6c | bufptr)| {..whil|
|00005b40| 65 20 28 69 73 53 50 41 | 43 45 28 2a 6f 6c 64 6f |e (isSPA|CE(*oldo|
|00005b50| 6c 64 62 75 66 70 74 72 | 29 29 0d 09 20 20 20 20 |ldbufptr|)).. |
|00005b60| 6f 6c 64 6f 6c 64 62 75 | 66 70 74 72 2b 2b 3b 0d |oldoldbu|fptr++;.|
|00005b70| 09 63 70 79 37 62 69 74 | 28 74 6d 70 32 62 75 66 |.cpy7bit|(tmp2buf|
|00005b80| 2c 20 6f 6c 64 6f 6c 64 | 62 75 66 70 74 72 2c 20 |, oldold|bufptr, |
|00005b90| 62 75 66 70 74 72 20 2d | 20 6f 6c 64 6f 6c 64 62 |bufptr -| oldoldb|
|00005ba0| 75 66 70 74 72 29 3b 0d | 09 73 70 72 69 6e 74 66 |ufptr);.|.sprintf|
|00005bb0| 28 74 6e 61 6d 65 2c 22 | 6e 65 78 74 20 32 20 74 |(tname,"|next 2 t|
|00005bc0| 6f 6b 65 6e 73 20 5c 22 | 25 73 5c 22 22 2c 74 6d |okens \"|%s\"",tm|
|00005bd0| 70 32 62 75 66 29 3b 0d | 20 20 20 20 7d 0d 20 20 |p2buf);.| }. |
|00005be0| 20 20 65 6c 73 65 20 69 | 66 20 28 62 75 66 70 74 | else i|f (bufpt|
|00005bf0| 72 20 3e 20 6f 6c 64 62 | 75 66 70 74 72 20 26 26 |r > oldb|ufptr &&|
|00005c00| 20 62 75 66 70 74 72 20 | 2d 20 6f 6c 64 62 75 66 | bufptr |- oldbuf|
|00005c10| 70 74 72 20 3c 20 32 30 | 30 20 26 26 0d 20 20 20 |ptr < 20|0 &&. |
|00005c20| 20 20 20 6f 6c 64 62 75 | 66 70 74 72 20 21 3d 20 | oldbu|fptr != |
|00005c30| 62 75 66 70 74 72 29 20 | 7b 0d 09 77 68 69 6c 65 |bufptr) |{..while|
|00005c40| 20 28 69 73 53 50 41 43 | 45 28 2a 6f 6c 64 62 75 | (isSPAC|E(*oldbu|
|00005c50| 66 70 74 72 29 29 0d 09 | 20 20 20 20 6f 6c 64 62 |fptr))..| oldb|
|00005c60| 75 66 70 74 72 2b 2b 3b | 0d 09 63 70 79 37 62 69 |ufptr++;|..cpy7bi|
|00005c70| 74 28 74 6d 70 32 62 75 | 66 2c 20 6f 6c 64 62 75 |t(tmp2bu|f, oldbu|
|00005c80| 66 70 74 72 2c 20 62 75 | 66 70 74 72 20 2d 20 6f |fptr, bu|fptr - o|
|00005c90| 6c 64 62 75 66 70 74 72 | 29 3b 0d 09 73 70 72 69 |ldbufptr|);..spri|
|00005ca0| 6e 74 66 28 74 6e 61 6d | 65 2c 22 6e 65 78 74 20 |ntf(tnam|e,"next |
|00005cb0| 74 6f 6b 65 6e 20 5c 22 | 25 73 5c 22 22 2c 74 6d |token \"|%s\"",tm|
|00005cc0| 70 32 62 75 66 29 3b 0d | 20 20 20 20 7d 0d 20 20 |p2buf);.| }. |
|00005cd0| 20 20 65 6c 73 65 20 69 | 66 20 28 79 79 63 68 61 | else i|f (yycha|
|00005ce0| 72 20 3e 20 32 35 36 29 | 0d 09 74 6e 61 6d 65 20 |r > 256)|..tname |
|00005cf0| 3d 20 22 6e 65 78 74 20 | 74 6f 6b 65 6e 20 3f 3f |= "next |token ??|
|00005d00| 3f 22 3b 0d 20 20 20 20 | 65 6c 73 65 20 69 66 20 |?";. |else if |
|00005d10| 28 21 79 79 63 68 61 72 | 29 0d 09 28 76 6f 69 64 |(!yychar|)..(void|
|00005d20| 29 73 74 72 63 70 79 28 | 74 6e 61 6d 65 2c 22 61 |)strcpy(|tname,"a|
|00005d30| 74 20 45 4f 46 22 29 3b | 0d 20 20 20 20 65 6c 73 |t EOF");|. els|
|00005d40| 65 20 69 66 20 28 79 79 | 63 68 61 72 20 3c 20 33 |e if (yy|char < 3|
|00005d50| 32 29 0d 09 28 76 6f 69 | 64 29 73 70 72 69 6e 74 |2)..(voi|d)sprint|
|00005d60| 66 28 74 6e 61 6d 65 2c | 22 6e 65 78 74 20 63 68 |f(tname,|"next ch|
|00005d70| 61 72 20 5e 25 63 22 2c | 79 79 63 68 61 72 2b 36 |ar ^%c",|yychar+6|
|00005d80| 34 29 3b 0d 20 20 20 20 | 65 6c 73 65 20 69 66 20 |4);. |else if |
|00005d90| 28 79 79 63 68 61 72 20 | 3d 3d 20 31 32 37 29 0d |(yychar |== 127).|
|00005da0| 09 28 76 6f 69 64 29 73 | 74 72 63 70 79 28 74 6e |.(void)s|trcpy(tn|
|00005db0| 61 6d 65 2c 22 61 74 20 | 45 4f 46 22 29 3b 0d 20 |ame,"at |EOF");. |
|00005dc0| 20 20 20 65 6c 73 65 0d | 09 28 76 6f 69 64 29 73 | else.|.(void)s|
|00005dd0| 70 72 69 6e 74 66 28 74 | 6e 61 6d 65 2c 22 6e 65 |printf(t|name,"ne|
|00005de0| 78 74 20 63 68 61 72 20 | 25 63 22 2c 79 79 63 68 |xt char |%c",yych|
|00005df0| 61 72 29 3b 0d 23 69 66 | 64 65 66 20 6d 61 63 69 |ar);.#if|def maci|
|00005e00| 6e 74 6f 73 68 0d 20 20 | 20 20 28 76 6f 69 64 29 |ntosh. | (void)|
|00005e10| 73 70 72 69 6e 74 66 28 | 62 75 66 2c 20 22 23 20 |sprintf(|buf, "# |
|00005e20| 25 73 2c 20 25 73 5c 6e | 22 2c 20 73 2c 20 74 6e |%s, %s\n|", s, tn|
|00005e30| 61 6d 65 29 3b 0d 20 20 | 20 20 69 66 20 28 63 75 |ame);. | if (cu|
|00005e40| 72 63 6d 64 2d 3e 63 5f | 6c 69 6e 65 20 3d 3d 20 |rcmd->c_|line == |
|00005e50| 6d 75 6c 74 69 5f 65 6e | 64 20 26 26 20 6d 75 6c |multi_en|d && mul|
|00005e60| 74 69 5f 73 74 61 72 74 | 20 3c 20 6d 75 6c 74 69 |ti_start| < multi|
|00005e70| 5f 65 6e 64 29 0d 09 73 | 70 72 69 6e 74 66 28 62 |_end)..s|printf(b|
|00005e80| 75 66 2b 73 74 72 6c 65 | 6e 28 62 75 66 29 2c 0d |uf+strle|n(buf),.|
|00005e90| 09 20 20 22 23 20 20 28 | 4d 69 67 68 74 20 62 65 |. "# (|Might be|
|00005ea0| 20 61 20 72 75 6e 61 77 | 61 79 20 6d 75 6c 74 69 | a runaw|ay multi|
|00005eb0| 2d 6c 69 6e 65 20 25 63 | 25 63 20 73 74 72 69 6e |-line %c|%c strin|
|00005ec0| 67 20 73 74 61 72 74 69 | 6e 67 20 6f 6e 20 6c 69 |g starti|ng on li|
|00005ed0| 6e 65 20 25 64 29 5c 6e | 22 2c 0d 09 20 20 6d 75 |ne %d)\n|",.. mu|
|00005ee0| 6c 74 69 5f 6f 70 65 6e | 2c 6d 75 6c 74 69 5f 63 |lti_open|,multi_c|
|00005ef0| 6c 6f 73 65 2c 6d 75 6c | 74 69 5f 73 74 61 72 74 |lose,mul|ti_start|
|00005f00| 29 3b 0d 20 20 20 20 73 | 74 72 63 70 79 28 0d 20 |);. s|trcpy(. |
|00005f10| 20 20 20 09 4d 50 57 50 | 6f 73 49 6e 64 69 63 61 | .MPWP|osIndica|
|00005f20| 74 69 6f 6e 28 0d 09 20 | 20 20 20 62 75 66 2b 73 |tion(.. | buf+s|
|00005f30| 74 72 6c 65 6e 28 62 75 | 66 29 2c 0d 09 20 20 20 |trlen(bu|f),.. |
|00005f40| 20 73 74 61 62 5f 76 61 | 6c 28 63 75 72 63 6d 64 | stab_va|l(curcmd|
|00005f50| 2d 3e 63 5f 66 69 6c 65 | 73 74 61 62 29 2d 3e 73 |->c_file|stab)->s|
|00005f60| 74 72 5f 70 74 72 2c 0d | 09 20 20 20 20 63 75 72 |tr_ptr,.|. cur|
|00005f70| 63 6d 64 2d 3e 63 5f 6c | 69 6e 65 29 2c 0d 09 22 |cmd->c_l|ine),.."|
|00005f80| 5c 6e 22 29 3b 0d 23 65 | 6c 73 65 0d 20 20 20 20 |\n");.#e|lse. |
|00005f90| 28 76 6f 69 64 29 73 70 | 72 69 6e 74 66 28 62 75 |(void)sp|rintf(bu|
|00005fa0| 66 2c 20 22 25 73 20 69 | 6e 20 66 69 6c 65 20 25 |f, "%s i|n file %|
|00005fb0| 73 20 61 74 20 6c 69 6e | 65 20 25 64 2c 20 25 73 |s at lin|e %d, %s|
|00005fc0| 5c 6e 22 2c 0d 20 20 20 | 20 20 20 73 2c 73 74 61 |\n",. | s,sta|
|00005fd0| 62 5f 76 61 6c 28 63 75 | 72 63 6d 64 2d 3e 63 5f |b_val(cu|rcmd->c_|
|00005fe0| 66 69 6c 65 73 74 61 62 | 29 2d 3e 73 74 72 5f 70 |filestab|)->str_p|
|00005ff0| 74 72 2c 63 75 72 63 6d | 64 2d 3e 63 5f 6c 69 6e |tr,curcm|d->c_lin|
|00006000| 65 2c 74 6e 61 6d 65 29 | 3b 0d 20 20 20 20 69 66 |e,tname)|;. if|
|00006010| 20 28 63 75 72 63 6d 64 | 2d 3e 63 5f 6c 69 6e 65 | (curcmd|->c_line|
|00006020| 20 3d 3d 20 6d 75 6c 74 | 69 5f 65 6e 64 20 26 26 | == mult|i_end &&|
|00006030| 20 6d 75 6c 74 69 5f 73 | 74 61 72 74 20 3c 20 6d | multi_s|tart < m|
|00006040| 75 6c 74 69 5f 65 6e 64 | 29 0d 09 73 70 72 69 6e |ulti_end|)..sprin|
|00006050| 74 66 28 62 75 66 2b 73 | 74 72 6c 65 6e 28 62 75 |tf(buf+s|trlen(bu|
|00006060| 66 29 2c 0d 09 20 20 22 | 20 20 28 4d 69 67 68 74 |f),.. "| (Might|
|00006070| 20 62 65 20 61 20 72 75 | 6e 61 77 61 79 20 6d 75 | be a ru|naway mu|
|00006080| 6c 74 69 2d 6c 69 6e 65 | 20 25 63 25 63 20 73 74 |lti-line| %c%c st|
|00006090| 72 69 6e 67 20 73 74 61 | 72 74 69 6e 67 20 6f 6e |ring sta|rting on|
|000060a0| 20 6c 69 6e 65 20 25 64 | 29 5c 6e 22 2c 0d 09 20 | line %d|)\n",.. |
|000060b0| 20 6d 75 6c 74 69 5f 6f | 70 65 6e 2c 6d 75 6c 74 | multi_o|pen,mult|
|000060c0| 69 5f 63 6c 6f 73 65 2c | 6d 75 6c 74 69 5f 73 74 |i_close,|multi_st|
|000060d0| 61 72 74 29 3b 0d 23 65 | 6e 64 69 66 0d 20 20 20 |art);.#e|ndif. |
|000060e0| 20 69 66 20 28 69 6e 5f | 65 76 61 6c 29 0d 09 73 | if (in_|eval)..s|
|000060f0| 74 72 5f 63 61 74 28 73 | 74 61 62 5f 76 61 6c 28 |tr_cat(s|tab_val(|
|00006100| 73 74 61 62 65 6e 74 28 | 22 40 22 2c 54 52 55 45 |stabent(|"@",TRUE|
|00006110| 29 29 2c 62 75 66 29 3b | 0d 20 20 20 20 65 6c 73 |)),buf);|. els|
|00006120| 65 0d 09 66 70 75 74 73 | 28 62 75 66 2c 73 74 64 |e..fputs|(buf,std|
|00006130| 65 72 72 29 3b 0d 20 20 | 20 20 69 66 20 28 2b 2b |err);. | if (++|
|00006140| 65 72 72 6f 72 5f 63 6f | 75 6e 74 20 3e 3d 20 31 |error_co|unt >= 1|
|00006150| 30 29 0d 09 66 61 74 61 | 6c 28 22 25 73 20 68 61 |0)..fata|l("%s ha|
|00006160| 73 20 74 6f 6f 20 6d 61 | 6e 79 20 65 72 72 6f 72 |s too ma|ny error|
|00006170| 73 2e 5c 6e 22 2c 0d 09 | 73 74 61 62 5f 76 61 6c |s.\n",..|stab_val|
|00006180| 28 63 75 72 63 6d 64 2d | 3e 63 5f 66 69 6c 65 73 |(curcmd-|>c_files|
|00006190| 74 61 62 29 2d 3e 73 74 | 72 5f 70 74 72 29 3b 0d |tab)->st|r_ptr);.|
|000061a0| 7d 0d 0d 76 6f 69 64 0d | 77 68 69 6c 65 5f 69 6f |}..void.|while_io|
|000061b0| 28 63 6d 64 29 0d 72 65 | 67 69 73 74 65 72 20 43 |(cmd).re|gister C|
|000061c0| 4d 44 20 2a 63 6d 64 3b | 0d 7b 0d 20 20 20 20 72 |MD *cmd;|.{. r|
|000061d0| 65 67 69 73 74 65 72 20 | 41 52 47 20 2a 61 72 67 |egister |ARG *arg|
|000061e0| 20 3d 20 63 6d 64 2d 3e | 63 5f 65 78 70 72 3b 0d | = cmd->|c_expr;.|
|000061f0| 20 20 20 20 53 54 41 42 | 20 2a 61 73 67 6e 73 74 | STAB| *asgnst|
|00006200| 61 62 3b 0d 0d 20 20 20 | 20 2f 2a 20 68 6f 69 73 |ab;.. | /* hois|
|00006210| 74 20 22 77 68 69 6c 65 | 20 28 3c 63 68 61 6e 6e |t "while| (<chann|
|00006220| 65 6c 3e 29 22 20 75 70 | 20 69 6e 74 6f 20 63 6f |el>)" up| into co|
|00006230| 6d 6d 61 6e 64 20 62 6c | 6f 63 6b 20 2a 2f 0d 0d |mmand bl|ock */..|
|00006240| 20 20 20 20 69 66 20 28 | 61 72 67 20 26 26 20 61 | if (|arg && a|
|00006250| 72 67 2d 3e 61 72 67 5f | 74 79 70 65 20 3d 3d 20 |rg->arg_|type == |
|00006260| 4f 5f 49 54 45 4d 20 26 | 26 20 61 72 67 5b 31 5d |O_ITEM &|& arg[1]|
|00006270| 2e 61 72 67 5f 74 79 70 | 65 20 3d 3d 20 41 5f 52 |.arg_typ|e == A_R|
|00006280| 45 41 44 29 20 7b 0d 09 | 63 6d 64 2d 3e 63 5f 66 |EAD) {..|cmd->c_f|
|00006290| 6c 61 67 73 20 26 3d 20 | 7e 43 46 5f 4f 50 54 49 |lags &= |~CF_OPTI|
|000062a0| 4d 49 5a 45 3b 09 2f 2a | 20 63 6c 65 61 72 20 6f |MIZE;./*| clear o|
|000062b0| 70 74 69 6d 69 7a 61 74 | 69 6f 6e 20 74 79 70 65 |ptimizat|ion type|
|000062c0| 20 2a 2f 0d 09 63 6d 64 | 2d 3e 63 5f 66 6c 61 67 | */..cmd|->c_flag|
|000062d0| 73 20 7c 3d 20 43 46 54 | 5f 47 45 54 53 3b 09 2f |s |= CFT|_GETS;./|
|000062e0| 2a 20 61 6e 64 20 73 65 | 74 20 69 74 20 74 6f 20 |* and se|t it to |
|000062f0| 64 6f 20 74 68 65 20 69 | 6e 70 75 74 20 2a 2f 0d |do the i|nput */.|
|00006300| 09 63 6d 64 2d 3e 63 5f | 73 74 61 62 20 3d 20 61 |.cmd->c_|stab = a|
|00006310| 72 67 5b 31 5d 2e 61 72 | 67 5f 70 74 72 2e 61 72 |rg[1].ar|g_ptr.ar|
|00006320| 67 5f 73 74 61 62 3b 0d | 09 69 66 20 28 73 74 61 |g_stab;.|.if (sta|
|00006330| 62 5f 69 6f 28 61 72 67 | 5b 31 5d 2e 61 72 67 5f |b_io(arg|[1].arg_|
|00006340| 70 74 72 2e 61 72 67 5f | 73 74 61 62 29 2d 3e 66 |ptr.arg_|stab)->f|
|00006350| 6c 61 67 73 20 26 20 49 | 4f 46 5f 41 52 47 56 29 |lags & I|OF_ARGV)|
|00006360| 20 7b 0d 09 20 20 20 20 | 63 6d 64 2d 3e 63 5f 65 | {.. |cmd->c_e|
|00006370| 78 70 72 20 3d 20 6c 28 | 6d 61 6b 65 5f 6f 70 28 |xpr = l(|make_op(|
|00006380| 4f 5f 41 53 53 49 47 4e | 2c 20 32 2c 09 2f 2a 20 |O_ASSIGN|, 2,./* |
|00006390| 66 61 6b 65 20 75 70 20 | 22 24 5f 20 3d 22 20 2a |fake up |"$_ =" *|
|000063a0| 2f 0d 09 20 20 20 20 20 | 20 20 73 74 61 62 32 61 |/.. | stab2a|
|000063b0| 72 67 28 41 5f 4c 56 41 | 4c 2c 64 65 66 73 74 61 |rg(A_LVA|L,defsta|
|000063c0| 62 29 2c 20 61 72 67 2c | 20 4e 75 6c 6c 61 72 67 |b), arg,| Nullarg|
|000063d0| 29 29 3b 0d 09 7d 0d 09 | 65 6c 73 65 20 7b 0d 09 |));..}..|else {..|
|000063e0| 20 20 20 20 66 72 65 65 | 5f 61 72 67 28 61 72 67 | free|_arg(arg|
|000063f0| 29 3b 0d 09 20 20 20 20 | 63 6d 64 2d 3e 63 5f 65 |);.. |cmd->c_e|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.